UJIAN AKHIR SEMESTER IF540-L MACHINE LEARNING
¶

Semester Gasal 2024/2025
¶

FORECASTING TRENDS OF DOMESTIC TOURIST VISITS USING THE ARIMA METHOD
¶


Instruction¶

  • Please make sure that ALL required submission files are submitted on the E-Learning.
  • Please make sure to use Markdown as comment for the code you are writing
  • Do not ZIP the submission files

Caution¶

  • We DOES NOT ACCEPT a submission via Gmail, Google Drive, Whatsapp, or any other than E-Learning
  • We DOES NOT tolerate any plagriarism, etc.
  • DO NOT change the order of this template.

Group - 4¶

Members :¶
  • 1. Gerard Stefan Gani - 00000068198
  • 2. Jovan Fidello - 00000067827
  • 3. Ryu Ivan Wijaya - 00000065448
  • 4. Vianca Vanesia Barhan - 00000065031

The dataset that are being used for the project¶

  1. Jumlah Perjalanan Wisatawan Nusantara Menurut Provinsi Tujuan (Perjalanan), 2019 – sumber : [https://www.bps.go.id/id/statistics-table/2/MjIwMSMy/jumlah-perjalanan-wisatawan-nusantara-menurut-provinsi-tujuan--perjalanan-.html]
  2. Jumlah Perjalanan Wisatawan Nusantara Menurut Provinsi Tujuan (Perjalanan), 2020 – sumber : [https://www.bps.go.id/id/statistics-table/2/MjIwMSMy/jumlah-perjalanan-wisatawan-nusantara-menurut-provinsi-tujuan--perjalanan-.html]
  3. Jumlah Perjalanan Wisatawan Nusantara Menurut Provinsi Tujuan (Perjalanan), 2021 – sumber : [https://www.bps.go.id/id/statistics-table/2/MjIwMSMy/jumlah-perjalanan-wisatawan-nusantara-menurut-provinsi-tujuan--perjalanan-.html]
  4. Jumlah Perjalanan Wisatawan Nusantara Menurut Provinsi Tujuan (Perjalanan), 2022 – sumber : [https://www.bps.go.id/id/statistics-table/2/MjIwMSMy/jumlah-perjalanan-wisatawan-nusantara-menurut-provinsi-tujuan--perjalanan-.html]
  5. Jumlah Perjalanan Wisatawan Nusantara Menurut Provinsi Tujuan (Perjalanan), 2023 – sumber : [https://www.bps.go.id/id/statistics-table/2/MjIwMSMy/jumlah-perjalanan-wisatawan-nusantara-menurut-provinsi-tujuan--perjalanan-.html]
  6. Jumlah Perjalanan Wisatawan Nusantara Menurut Provinsi Tujuan (Perjalanan), 2024 – sumber : [https://www.bps.go.id/id/statistics-table/2/MjIwMSMy/jumlah-perjalanan-wisatawan-nusantara-menurut-provinsi-tujuan--perjalanan-.html]

Dataset Description:¶

Please describe the dataset with much detail if possible¶

This dataset is titled “Jumlah Perjalanan Wisatawan Nusantara Menurut Provinsi Tujuan” and originates from the Badan Pusat Statistik (BPS). It includes information on the number of domestic tourist trips from each province in Indonesia from 2019 to 2024. The dataset consists of 38 entities, representing 38 provinces in Indonesia. The features in this dataset are the province names and the number of domestic tourist trips recorded each month. After preprocessing, this dataset is comprised of 34 instances and 61 features. Each instance represents a province, and the features detail the number of domestic tourist trips recorded monthly.

In the “Jumlah Perjalanan Wisatawan Nusantara Menurut Provinsi Tujuan” dataset, the data only includes the number of domestic tourists in each province per month and per year. There are no labels indicating specific categories or segmentations of provinces, making this dataset unsupervised. This data provides insight into the movement of domestic tourists in Indonesia and can be used to analyze tourism trends, identify popular destinations, and formulate tourism development strategies.

Project Showcase¶

Import libraries¶

In [1]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

Data preprocessing¶

Dataset 2019¶

In [2]:
# Import 2019 dataset
data_2019 = pd.read_csv("Jumlah Perjalanan Wisatawan Nusantara Menurut Provinsi Tujuan, 2019.csv", header=None)
print("Total instance and features:", data_2019.shape)
print("List of features:", data_2019.columns)
print("Print the first 5 instance:\n", data_2019.head())
Total instance and features: (43, 14)
List of features: Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], dtype='int64')
Print the first 5 instance:
             0                                                  1         2   \
0  38 Provinsi                                                NaN       NaN   
1          NaN  Jumlah Perjalanan Wisatawan Nusantara Menurut ...       NaN   
2          NaN                                               2019       NaN   
3          NaN                                            Januari  Februari   
4         ACEH                                            1387574   1111607   

        3        4        5        6        7        8          9        10  \
0      NaN      NaN      NaN      NaN      NaN      NaN        NaN      NaN   
1      NaN      NaN      NaN      NaN      NaN      NaN        NaN      NaN   
2      NaN      NaN      NaN      NaN      NaN      NaN        NaN      NaN   
3    Maret    April      Mei     Juni     Juli  Agustus  September  Oktober   
4  1113176  1155705  1070909  1800152  1323272  1508073    1174513  1219323   

         11        12        13  
0       NaN       NaN       NaN  
1       NaN       NaN       NaN  
2       NaN       NaN       NaN  
3  November  Desember   Tahunan  
4   1198958   1597524  15660786  

Dataset 2020¶

In [3]:
# Import 2020 dataset
data_2020 = pd.read_csv("Jumlah Perjalanan Wisatawan Nusantara Menurut Provinsi Tujuan, 2020.csv", header=None)
print("Total instance and features:", data_2020.shape)
print("List of features:", data_2020.columns)
print("Print the first 5 instance:\n", data_2020.head())
Total instance and features: (43, 14)
List of features: Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], dtype='int64')
Print the first 5 instance:
             0                                                  1         2   \
0  38 Provinsi                                                NaN       NaN   
1          NaN  Jumlah Perjalanan Wisatawan Nusantara Menurut ...       NaN   
2          NaN                                               2020       NaN   
3          NaN                                            Januari  Februari   
4         ACEH                                             483897    430589   

       3       4       5       6       7        8          9        10  \
0     NaN     NaN     NaN     NaN     NaN      NaN        NaN      NaN   
1     NaN     NaN     NaN     NaN     NaN      NaN        NaN      NaN   
2     NaN     NaN     NaN     NaN     NaN      NaN        NaN      NaN   
3   Maret   April     Mei    Juni    Juli  Agustus  September  Oktober   
4  351710  157764  258310  298482  333571   392055     293602   340415   

         11        12       13  
0       NaN       NaN      NaN  
1       NaN       NaN      NaN  
2       NaN       NaN      NaN  
3  November  Desember  Tahunan  
4    322558    479226  4142179  

Dataset 2021¶

In [4]:
# Import 2021 dataset
data_2021 = pd.read_csv("Jumlah Perjalanan Wisatawan Nusantara Menurut Provinsi Tujuan, 2021.csv", header=None)
print("Total instance and features:", data_2021.shape)
print("List of features:", data_2021.columns)
print("Print the first 5 instance:\n", data_2021.head())
Total instance and features: (43, 14)
List of features: Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], dtype='int64')
Print the first 5 instance:
             0                                                  1         2   \
0  38 Provinsi                                                NaN       NaN   
1          NaN  Jumlah Perjalanan Wisatawan Nusantara Menurut ...       NaN   
2          NaN                                               2021       NaN   
3          NaN                                            Januari  Februari   
4         ACEH                                             396953    421243   

       3       4       5       6       7        8          9        10  \
0     NaN     NaN     NaN     NaN     NaN      NaN        NaN      NaN   
1     NaN     NaN     NaN     NaN     NaN      NaN        NaN      NaN   
2     NaN     NaN     NaN     NaN     NaN      NaN        NaN      NaN   
3   Maret   April     Mei    Juni    Juli  Agustus  September  Oktober   
4  445804  378402  599117  457822  445355   397120     440652   490983   

         11        12       13  
0       NaN       NaN      NaN  
1       NaN       NaN      NaN  
2       NaN       NaN      NaN  
3  November  Desember  Tahunan  
4    445046    615908  5534405  

Dataset 2022¶

In [5]:
# Import 2022 dataset
data_2022 = pd.read_csv("Jumlah Perjalanan Wisatawan Nusantara Menurut Provinsi Tujuan, 2022.csv", header=None)
print("Total instance and features:", data_2022.shape)
print("List of features:", data_2022.columns)
print("Print the first 5 instance:\n", data_2022.head())
Total instance and features: (43, 14)
List of features: Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], dtype='int64')
Print the first 5 instance:
             0                                                  1         2   \
0  38 Provinsi                                                NaN       NaN   
1          NaN  Jumlah Perjalanan Wisatawan Nusantara Menurut ...       NaN   
2          NaN                                               2022       NaN   
3          NaN                                            Januari  Februari   
4         ACEH                                             526417    501651   

       3       4       5       6       7        8          9        10  \
0     NaN     NaN     NaN     NaN     NaN      NaN        NaN      NaN   
1     NaN     NaN     NaN     NaN     NaN      NaN        NaN      NaN   
2     NaN     NaN     NaN     NaN     NaN      NaN        NaN      NaN   
3   Maret   April     Mei    Juni    Juli  Agustus  September  Oktober   
4  585675  434633  935025  566361  748573   531072     500673   513056   

         11        12       13  
0       NaN       NaN      NaN  
1       NaN       NaN      NaN  
2       NaN       NaN      NaN  
3  November  Desember  Tahunan  
4    471520    639922  6954578  

Dataset 2023¶

In [6]:
# Import 2023 dataset
data_2023 = pd.read_csv("Jumlah Perjalanan Wisatawan Nusantara Menurut Provinsi Tujuan, 2023.csv", header=None)
print("Total instance and features:", data_2023.shape)
print("List of features:", data_2023.columns)
print("Print the first 5 instance:\n", data_2023.head())
Total instance and features: (43, 14)
List of features: Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], dtype='int64')
Print the first 5 instance:
             0                                                  1         2   \
0  38 Provinsi                                                NaN       NaN   
1          NaN  Jumlah Perjalanan Wisatawan Nusantara Menurut ...       NaN   
2          NaN                                               2023       NaN   
3          NaN                                            Januari  Februari   
4         ACEH                                             663437    517850   

       3       4       5       6       7        8          9        10  \
0     NaN     NaN     NaN     NaN     NaN      NaN        NaN      NaN   
1     NaN     NaN     NaN     NaN     NaN      NaN        NaN      NaN   
2     NaN     NaN     NaN     NaN     NaN      NaN        NaN      NaN   
3   Maret   April     Mei    Juni    Juli  Agustus  September  Oktober   
4  557272  756915  791968  701963  871519   618671     565184   588020   

         11        12       13  
0       NaN       NaN      NaN  
1       NaN       NaN      NaN  
2       NaN       NaN      NaN  
3  November  Desember  Tahunan  
4    637519   1673468  8943786  

Dataset 2024¶

In [7]:
# Import 2024 dataset
data_2024 = pd.read_csv("Jumlah Perjalanan Wisatawan Nusantara Menurut Provinsi Tujuan, 2024.csv", header=None)
print("Total instance and features:", data_2024.shape)
print("List of features:", data_2024.columns)
print("Print the first 5 instance:\n", data_2024.head())
Total instance and features: (43, 14)
List of features: Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], dtype='int64')
Print the first 5 instance:
             0                                                  1         2   \
0  38 Provinsi                                                NaN       NaN   
1          NaN  Jumlah Perjalanan Wisatawan Nusantara Menurut ...       NaN   
2          NaN                                               2024       NaN   
3          NaN                                            Januari  Februari   
4         ACEH                                            1009785    937728   

       3        4       5        6       7        8          9        10  \
0     NaN      NaN     NaN      NaN     NaN      NaN        NaN      NaN   
1     NaN      NaN     NaN      NaN     NaN      NaN        NaN      NaN   
2     NaN      NaN     NaN      NaN     NaN      NaN        NaN      NaN   
3   Maret    April     Mei     Juni    Juli  Agustus  September  Oktober   
4  905565  1282532  995794  1065780  958675   918712    1121450        -   

         11        12       13  
0       NaN       NaN      NaN  
1       NaN       NaN      NaN  
2       NaN       NaN      NaN  
3  November  Desember  Tahunan  
4         -         -        -  

Merging the 2019-2024 dataset¶

Drop unnecessary features¶
In [8]:
# Drop 'Tahunan' features for 2019 dataset
data_2019 = data_2019.drop(columns=[13]) 

# Drop 'Provinsi' and 'Tahunan' features for 2020-2024 dataset
data_2020 = data_2020.drop(columns=[0, 13])  
data_2021 = data_2021.drop(columns=[0, 13])
data_2022 = data_2022.drop(columns=[0, 13])
data_2023 = data_2023.drop(columns=[0, 13]) 
data_2024 = data_2024.drop(columns=[0, 7, 8, 9, 10, 11, 12, 13]) 

# Print total of features after drop
print("Total features after drop (2019):", data_2019.shape[1])
print("Total features after drop (2020):", data_2020.shape[1])
print("Total features after drop (2021):", data_2021.shape[1])
print("Total features after drop (2022):", data_2022.shape[1])
print("Total features after drop (2023):", data_2023.shape[1])
print("Total features after drop (2024):", data_2024.shape[1])
Total features after drop (2019): 13
Total features after drop (2020): 12
Total features after drop (2021): 12
Total features after drop (2022): 12
Total features after drop (2023): 12
Total features after drop (2024): 6
Combine/concat the datasets (2019-2024) and transpose the dataset¶
In [9]:
# Combine the datasets using concat along features (axis=1)
data = pd.concat([data_2019, data_2020, data_2021, data_2022, data_2023, data_2024], axis=1)

# Drop instance 0, 1, and 2 which contain the titles and descriptions of the dataset
data = data.drop([0, 1, 2])

# Reset index
data.reset_index(drop=True, inplace=True)

# Transpose the dataset
data = data.T

data
Out[9]:
0 1 2 3 4 5 6 7 8 9 ... 30 31 32 33 34 35 36 37 38 39
0 NaN ACEH SUMATERA UTARA SUMATERA BARAT RIAU JAMBI SUMATERA SELATAN BENGKULU LAMPUNG KEP. BANGKA BELITUNG ... SULAWESI BARAT MALUKU MALUKU UTARA PAPUA BARAT PAPUA BARAT DAYA PAPUA PAPUA SELATAN PAPUA TENGAH PAPUA PEGUNUNGAN INDONESIA
1 Januari 1387574 5094564 1667509 1990985 828879 1763349 414287 2082997 298322 ... 197588 258094 125514 185287 - 313389 - - - 60784241
2 Februari 1111607 3282713 1313185 1425092 652908 1294947 304721 1612674 240226 ... 134391 193290 76500 143094 - 209857 - - - 44588823
3 Maret 1113176 3442407 1420799 1541155 716028 1356470 336570 1606207 255054 ... 163587 206894 166014 159903 - 224960 - - - 56669168
4 April 1155705 3676763 1573606 1563303 547378 1099872 287546 1164672 199678 ... 174495 216036 190003 152087 - 209282 - - - 57856792
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2 Februari 937728 3392029 1758610 1449021 610850 1319045 308036 1338941 237943 ... 354721 156854 174338 38474 75511 102856 17468 39547 35410 81107173
3 Maret 905565 3149185 1281044 1434953 612554 1285518 298351 1260766 224732 ... 325813 161337 163305 35649 73040 103119 15993 37022 28300 78956390
4 April 1282532 3548654 1660760 1750903 886241 1854471 477429 1702675 297882 ... 443291 190504 206819 36469 76064 107380 17842 32192 23991 104527211
5 Mei 995794 3419857 1302524 1488391 662793 1326810 339591 1508526 237959 ... 342758 141499 161274 30025 68339 90245 13477 28351 23709 82909661
6 Juni 1065780 3369808 1642366 1446350 665827 1361245 358206 1658113 235572 ... 344329 117608 143794 24109 60563 80858 10197 20750 20894 83472282

67 rows × 40 columns

Create new index and set feature names after concatenating datasets¶
In [10]:
# Create new feature names for the concatenated dataset
months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december']
years = ['2019', '2020', '2021', '2022', '2023']
months_2024 = ['january', 'february', 'march', 'april', 'may', 'june']

# Rename features to ['{month}_{year}' for each month and year]
index = [f'{month}_{year}' for year in years for month in months] + [f'{month}_2024' for month in months_2024]

# Drop the old index
data = data.drop(columns=[0])

# Take the first row as column headers
data.columns = data.iloc[0] 

# Remove the first row
data = data[1:]

# Set new index
data.index = index 

# Parse the index to datetime
data.index = pd.to_datetime(data.index, format='%B_%Y')

data
Out[10]:
ACEH SUMATERA UTARA SUMATERA BARAT RIAU JAMBI SUMATERA SELATAN BENGKULU LAMPUNG KEP. BANGKA BELITUNG KEP. RIAU ... SULAWESI BARAT MALUKU MALUKU UTARA PAPUA BARAT PAPUA BARAT DAYA PAPUA PAPUA SELATAN PAPUA TENGAH PAPUA PEGUNUNGAN INDONESIA
2019-01-01 1387574 5094564 1667509 1990985 828879 1763349 414287 2082997 298322 434786 ... 197588 258094 125514 185287 - 313389 - - - 60784241
2019-02-01 1111607 3282713 1313185 1425092 652908 1294947 304721 1612674 240226 351865 ... 134391 193290 76500 143094 - 209857 - - - 44588823
2019-03-01 1113176 3442407 1420799 1541155 716028 1356470 336570 1606207 255054 358547 ... 163587 206894 166014 159903 - 224960 - - - 56669168
2019-04-01 1155705 3676763 1573606 1563303 547378 1099872 287546 1164672 199678 360392 ... 174495 216036 190003 152087 - 209282 - - - 57856792
2019-05-01 1070909 3469100 1511963 1574681 438508 917156 258241 877643 122301 358416 ... 152740 228658 163855 161711 - 235428 - - - 51548736
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2024-02-01 937728 3392029 1758610 1449021 610850 1319045 308036 1338941 237943 290290 ... 354721 156854 174338 38474 75511 102856 17468 39547 35410 81107173
2024-03-01 905565 3149185 1281044 1434953 612554 1285518 298351 1260766 224732 268990 ... 325813 161337 163305 35649 73040 103119 15993 37022 28300 78956390
2024-04-01 1282532 3548654 1660760 1750903 886241 1854471 477429 1702675 297882 333667 ... 443291 190504 206819 36469 76064 107380 17842 32192 23991 104527211
2024-05-01 995794 3419857 1302524 1488391 662793 1326810 339591 1508526 237959 276392 ... 342758 141499 161274 30025 68339 90245 13477 28351 23709 82909661
2024-06-01 1065780 3369808 1642366 1446350 665827 1361245 358206 1658113 235572 241548 ... 344329 117608 143794 24109 60563 80858 10197 20750 20894 83472282

66 rows × 39 columns

Handling missing values¶
In [11]:
# Replace missing values ('-') with NaN
data.replace('-', np.nan, inplace=True)

# Identify columns with missing values
missing_columns = data.columns[data.isnull().sum() > 0]

# Show the number of missing values per column
print("Column with missing values:")
print(data[missing_columns].isnull().sum())

# Drop columns with missing values
data = data.drop(columns=missing_columns)

data.columns
Column with missing values:
0
PAPUA BARAT DAYA    60
PAPUA SELATAN       60
PAPUA TENGAH        60
PAPUA PEGUNUNGAN    60
dtype: int64
Out[11]:
Index(['ACEH', 'SUMATERA UTARA', 'SUMATERA BARAT', 'RIAU', 'JAMBI',
       'SUMATERA SELATAN', 'BENGKULU', 'LAMPUNG', 'KEP. BANGKA BELITUNG',
       'KEP. RIAU', 'DKI JAKARTA', 'JAWA BARAT', 'JAWA TENGAH',
       'DI YOGYAKARTA', 'JAWA TIMUR', 'BANTEN', 'BALI', 'NUSA TENGGARA BARAT',
       'NUSA TENGGARA TIMUR', 'KALIMANTAN BARAT', 'KALIMANTAN TENGAH',
       'KALIMANTAN SELATAN', 'KALIMANTAN TIMUR', 'KALIMANTAN UTARA',
       'SULAWESI UTARA', 'SULAWESI TENGAH', 'SULAWESI SELATAN',
       'SULAWESI TENGGARA', 'GORONTALO', 'SULAWESI BARAT', 'MALUKU',
       'MALUKU UTARA', 'PAPUA BARAT', 'PAPUA', 'INDONESIA'],
      dtype='object', name=0)

Convert data to numeric¶

In [12]:
# Convert the dataset to numeric
data = data.apply(pd.to_numeric)

Drop unnecessary feature¶

In [13]:
# Drop unnecessary feature (INDONESIA)
data.drop(columns="INDONESIA", inplace=True)

# Display the final dataset features and instances
print("Total instance and features:", data.shape)
print("\nList of features:\n", data.columns)
print("\nList of instance (time_series):\n", data.index)
Total instance and features: (66, 34)

List of features:
 Index(['ACEH', 'SUMATERA UTARA', 'SUMATERA BARAT', 'RIAU', 'JAMBI',
       'SUMATERA SELATAN', 'BENGKULU', 'LAMPUNG', 'KEP. BANGKA BELITUNG',
       'KEP. RIAU', 'DKI JAKARTA', 'JAWA BARAT', 'JAWA TENGAH',
       'DI YOGYAKARTA', 'JAWA TIMUR', 'BANTEN', 'BALI', 'NUSA TENGGARA BARAT',
       'NUSA TENGGARA TIMUR', 'KALIMANTAN BARAT', 'KALIMANTAN TENGAH',
       'KALIMANTAN SELATAN', 'KALIMANTAN TIMUR', 'KALIMANTAN UTARA',
       'SULAWESI UTARA', 'SULAWESI TENGAH', 'SULAWESI SELATAN',
       'SULAWESI TENGGARA', 'GORONTALO', 'SULAWESI BARAT', 'MALUKU',
       'MALUKU UTARA', 'PAPUA BARAT', 'PAPUA'],
      dtype='object', name=0)

List of instance (time_series):
 DatetimeIndex(['2019-01-01', '2019-02-01', '2019-03-01', '2019-04-01',
               '2019-05-01', '2019-06-01', '2019-07-01', '2019-08-01',
               '2019-09-01', '2019-10-01', '2019-11-01', '2019-12-01',
               '2020-01-01', '2020-02-01', '2020-03-01', '2020-04-01',
               '2020-05-01', '2020-06-01', '2020-07-01', '2020-08-01',
               '2020-09-01', '2020-10-01', '2020-11-01', '2020-12-01',
               '2021-01-01', '2021-02-01', '2021-03-01', '2021-04-01',
               '2021-05-01', '2021-06-01', '2021-07-01', '2021-08-01',
               '2021-09-01', '2021-10-01', '2021-11-01', '2021-12-01',
               '2022-01-01', '2022-02-01', '2022-03-01', '2022-04-01',
               '2022-05-01', '2022-06-01', '2022-07-01', '2022-08-01',
               '2022-09-01', '2022-10-01', '2022-11-01', '2022-12-01',
               '2023-01-01', '2023-02-01', '2023-03-01', '2023-04-01',
               '2023-05-01', '2023-06-01', '2023-07-01', '2023-08-01',
               '2023-09-01', '2023-10-01', '2023-11-01', '2023-12-01',
               '2024-01-01', '2024-02-01', '2024-03-01', '2024-04-01',
               '2024-05-01', '2024-06-01'],
              dtype='datetime64[ns]', freq=None)

Create new dataset¶

In [14]:
# Reset index
data.reset_index(inplace=True)  

# Rename the index column to 'time_series'
data.rename(columns={'index': 'time_series'}, inplace=True)  

# Save the dataset to CSV
data.to_csv("cleaned_data.csv", index=False)

# Load the dataset
data = pd.read_csv("cleaned_data.csv")

# Set the 'time_series' column as the index
data.set_index('time_series', inplace=True)

data
Out[14]:
ACEH SUMATERA UTARA SUMATERA BARAT RIAU JAMBI SUMATERA SELATAN BENGKULU LAMPUNG KEP. BANGKA BELITUNG KEP. RIAU ... SULAWESI UTARA SULAWESI TENGAH SULAWESI SELATAN SULAWESI TENGGARA GORONTALO SULAWESI BARAT MALUKU MALUKU UTARA PAPUA BARAT PAPUA
time_series
2019-01-01 1387574 5094564 1667509 1990985 828879 1763349 414287 2082997 298322 434786 ... 256496 451254 2054894 534762 90789 197588 258094 125514 185287 313389
2019-02-01 1111607 3282713 1313185 1425092 652908 1294947 304721 1612674 240226 351865 ... 112937 308973 1402775 405350 48019 134391 193290 76500 143094 209857
2019-03-01 1113176 3442407 1420799 1541155 716028 1356470 336570 1606207 255054 358547 ... 197795 374463 1654575 436423 84467 163587 206894 166014 159903 224960
2019-04-01 1155705 3676763 1573606 1563303 547378 1099872 287546 1164672 199678 360392 ... 221246 374029 1799377 487941 102283 174495 216036 190003 152087 209282
2019-05-01 1070909 3469100 1511963 1574681 438508 917156 258241 877643 122301 358416 ... 235233 368161 1653101 445093 109827 152740 228658 163855 161711 235428
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2024-02-01 937728 3392029 1758610 1449021 610850 1319045 308036 1338941 237943 290290 ... 628713 831294 3016298 1145554 270873 354721 156854 174338 38474 102856
2024-03-01 905565 3149185 1281044 1434953 612554 1285518 298351 1260766 224732 268990 ... 625920 809385 2891023 1039727 274795 325813 161337 163305 35649 103119
2024-04-01 1282532 3548654 1660760 1750903 886241 1854471 477429 1702675 297882 333667 ... 762190 1061864 3551378 1442912 376567 443291 190504 206819 36469 107380
2024-05-01 995794 3419857 1302524 1488391 662793 1326810 339591 1508526 237959 276392 ... 668197 814471 3087984 1070042 285885 342758 141499 161274 30025 90245
2024-06-01 1065780 3369808 1642366 1446350 665827 1361245 358206 1658113 235572 241548 ... 671549 774521 3145350 1110037 287451 344329 117608 143794 24109 80858

66 rows × 34 columns

Split data to training and test¶

In [15]:
training_data = data.loc['2019-01-01':'2023-12-01']
training_data
Out[15]:
ACEH SUMATERA UTARA SUMATERA BARAT RIAU JAMBI SUMATERA SELATAN BENGKULU LAMPUNG KEP. BANGKA BELITUNG KEP. RIAU ... SULAWESI UTARA SULAWESI TENGAH SULAWESI SELATAN SULAWESI TENGGARA GORONTALO SULAWESI BARAT MALUKU MALUKU UTARA PAPUA BARAT PAPUA
time_series
2019-01-01 1387574 5094564 1667509 1990985 828879 1763349 414287 2082997 298322 434786 ... 256496 451254 2054894 534762 90789 197588 258094 125514 185287 313389
2019-02-01 1111607 3282713 1313185 1425092 652908 1294947 304721 1612674 240226 351865 ... 112937 308973 1402775 405350 48019 134391 193290 76500 143094 209857
2019-03-01 1113176 3442407 1420799 1541155 716028 1356470 336570 1606207 255054 358547 ... 197795 374463 1654575 436423 84467 163587 206894 166014 159903 224960
2019-04-01 1155705 3676763 1573606 1563303 547378 1099872 287546 1164672 199678 360392 ... 221246 374029 1799377 487941 102283 174495 216036 190003 152087 209282
2019-05-01 1070909 3469100 1511963 1574681 438508 917156 258241 877643 122301 358416 ... 235233 368161 1653101 445093 109827 152740 228658 163855 161711 235428
2019-06-01 1800152 5774370 2910574 2179811 572785 1380350 407898 1653991 178462 460205 ... 325311 380756 2395339 621228 163192 221961 224863 119683 172118 240501
2019-07-01 1323272 3996409 1719018 1646721 498688 848202 292552 992730 148190 413445 ... 336575 323650 1917506 487514 123297 173239 111095 102619 164784 234623
2019-08-01 1508073 3699782 1207708 1227426 620967 1265112 353997 1422192 182592 286867 ... 305167 506559 2516211 532628 131352 262037 104002 99582 158220 224909
2019-09-01 1174513 3208776 1011691 1018291 580974 1121514 347174 1191629 171412 244300 ... 267290 404438 2106120 439248 106151 204889 91767 85337 73498 174820
2019-10-01 1219323 3419415 1094813 1131194 533651 1276480 342352 1269517 195073 274522 ... 307207 469816 2341121 303878 139035 242300 96055 177456 93397 204906
2019-11-01 1198958 3416228 1078273 1119316 526013 1168308 340572 1276815 198154 287732 ... 286146 494853 2345045 300770 120291 236861 97869 163370 94620 212794
2019-12-01 1597524 5440703 2292513 2087900 702943 1575018 412683 1871463 239683 448736 ... 293133 418240 2230009 580664 127908 210792 243228 124114 180580 280181
2020-01-01 483897 2012511 863282 619363 264201 620543 155102 876254 127282 138085 ... 156614 185796 1027653 206468 48443 105991 38562 46810 46741 75045
2020-02-01 430589 1466193 779785 548129 250082 584230 140647 782363 107273 112726 ... 154197 176960 932636 193500 44850 97671 36768 47758 44158 73078
2020-03-01 351710 1109440 623248 464347 206088 483516 117920 658446 83654 68659 ... 158677 145200 759362 143516 54723 69873 29688 38527 34282 57571
2020-04-01 157764 442072 226466 215636 114969 234250 61421 356647 34757 19843 ... 66627 65380 287133 71545 33603 26873 10479 22439 9348 24783
2020-05-01 258310 576278 250931 249411 133020 223800 67769 395199 48428 17661 ... 58036 65852 308242 71224 27476 22014 7978 12649 11657 26829
2020-06-01 298482 864667 562966 390121 183620 339725 100775 559053 53351 29392 ... 112243 86803 547513 106867 49003 49222 11914 23881 17414 35260
2020-07-01 333571 1082687 754303 440119 235975 486690 131746 779034 70022 47791 ... 193492 119534 663996 146936 68769 61561 15625 36540 22301 45320
2020-08-01 392055 1291700 827245 497048 258405 555501 154764 880796 87978 46331 ... 259030 157123 909748 181890 83192 80440 21065 43536 23616 46725
2020-09-01 293602 1016798 555478 422867 228973 484199 127706 686462 73888 48314 ... 282281 132882 850322 206855 94892 75891 23965 47792 23906 50583
2020-10-01 340415 1232110 672099 520924 240877 557537 146378 788792 81326 60644 ... 335445 109312 959171 193265 108500 75517 29428 50275 26119 55847
2020-11-01 322558 1120288 661261 463144 242326 514748 131395 737712 86222 61440 ... 326566 137047 906014 191705 101882 75153 30269 48505 32062 58583
2020-12-01 479226 1831624 1115758 674613 326026 745355 184734 1024964 111916 94695 ... 377599 189733 1063264 269241 132725 110693 147307 83999 50886 136898
2021-01-01 396953 1424081 775782 507998 247256 541878 139180 707904 65347 60617 ... 252298 140380 743342 209867 90759 124447 78120 68567 56475 124573
2021-02-01 421243 1375473 735587 482533 225630 511557 131185 647312 72930 64867 ... 284672 139294 724546 189183 92165 77882 47482 47555 49044 56995
2021-03-01 445804 1415803 793796 511576 239867 553847 137722 746409 87341 75329 ... 316834 177093 847765 208125 103269 81571 48787 54200 41249 69170
2021-04-01 378402 1369304 712644 451372 226476 516146 124531 706069 84283 70355 ... 319841 154719 765199 187883 89741 70523 71019 51844 35284 86207
2021-05-01 599117 1674445 1025889 501143 280176 608248 179928 975559 93531 50771 ... 372363 187679 937945 237647 117211 88146 50091 57892 31565 56054
2021-06-01 457822 1571487 894952 521519 255590 574663 159098 791886 93222 65954 ... 344017 183102 928134 212043 100327 91217 55585 57866 42558 86681
2021-07-01 445355 1127318 664848 486997 240188 499604 126188 564563 73819 36721 ... 237853 155542 838925 190375 92090 89158 32749 44031 26814 50949
2021-08-01 397120 1139616 635405 418261 205004 477028 123317 602800 62355 40978 ... 237457 131074 723167 179936 85478 80028 38200 46619 29913 48378
2021-09-01 440652 1329028 717460 480952 234360 554767 139828 749160 80206 73747 ... 290810 157759 824543 214553 97555 90870 46237 51543 42337 90643
2021-10-01 490983 1641459 829981 542388 277376 624377 160489 835530 109459 88509 ... 340274 187825 960245 237909 104446 91955 52031 67386 40861 79326
2021-11-01 445046 1433761 733146 503440 247704 568239 138376 760453 101097 85577 ... 333070 168918 842440 220257 93069 86912 51355 51408 33842 63345
2021-12-01 615908 2256408 1084422 735090 367540 796983 210851 1089221 140399 122247 ... 403468 243526 1091834 293377 122720 109793 68109 73794 55063 114802
2022-01-01 526417 2022964 926043 636543 302504 650971 180768 878496 122602 93349 ... 327133 195589 930906 243982 104369 86174 41334 60617 35776 71001
2022-02-01 501651 1636066 814741 581783 255285 538004 137886 694763 99338 75268 ... 260815 173663 803391 220654 88530 83763 35725 55228 30984 63721
2022-03-01 585675 1846809 1007630 673534 313009 691513 172874 866807 142414 105778 ... 347157 609507 3267252 1495127 151616 425016 49734 141231 37297 76243
2022-04-01 434633 1658463 838560 597000 310853 725485 160737 934561 125002 104207 ... 349618 691868 3768595 1585129 140420 516032 57885 152337 34020 69361
2022-05-01 935025 2896949 1655583 897026 449078 970391 293433 1412731 183098 138874 ... 503507 817447 4619651 1592211 189314 611768 56722 166862 38551 77379
2022-06-01 566361 1987624 988346 692293 316554 679215 173024 866263 135070 147934 ... 394131 597158 2492319 1050720 130595 409575 51382 140421 39956 81989
2022-07-01 748573 2216932 1176922 795698 364514 834754 203448 1043996 146618 149456 ... 436556 646673 2732814 1231851 140784 442861 48932 157797 39706 86039
2022-08-01 531072 1678953 905311 662795 285681 659155 158883 772720 117743 123680 ... 352431 532060 2136650 1097809 113456 373165 46979 135693 40948 84147
2022-09-01 500673 1664991 891560 677309 280278 668784 159439 833337 120832 123914 ... 360004 515189 1803376 1044426 109350 318147 52568 132686 39159 78700
2022-10-01 513056 1785747 949081 692329 289153 665454 154957 834108 126635 132432 ... 365860 543272 1922182 1056378 100365 311722 52357 119219 40627 81068
2022-11-01 471520 1525633 877671 640199 262087 603787 133058 762778 115001 131230 ... 322748 555548 1834305 1136194 92496 310736 43671 115762 36457 78388
2022-12-01 639922 2283325 1307815 857727 351987 804851 185142 1025144 144054 185232 ... 401895 575043 2287771 1028565 117518 345542 75278 133388 56395 111840
2023-01-01 663437 2962641 1345098 914340 380949 870450 211866 1149078 164006 176025 ... 421675 667588 2682502 1372219 139879 423949 66046 118409 47444 94530
2023-02-01 517850 1870691 1024017 729078 293566 714967 151670 900023 124730 153373 ... 329629 567749 2225280 1299527 114908 380529 49253 109334 38921 76336
2023-03-01 557272 1852752 1056957 759760 302700 703181 154106 877374 139812 162989 ... 358498 695711 2455952 1389727 132863 425711 55659 136684 40975 87194
2023-04-01 756915 2673955 1373374 935938 414742 1010231 248057 1429885 185529 162775 ... 468296 702310 2503880 1281173 164216 399963 62401 142086 39759 87917
2023-05-01 791968 2556839 1538507 977332 421741 1021583 241660 1376686 209111 200190 ... 460407 716311 2472401 1294740 162712 406264 75390 148300 49782 100494
2023-06-01 701963 2416258 1407632 1016640 424987 968252 225886 1208281 218299 230629 ... 480374 465410 1983399 899696 154749 297134 85195 162908 62022 133566
2023-07-01 871519 2462212 1413899 1048542 433896 1013893 241961 1293197 234099 211471 ... 492400 377459 2212555 838914 156871 294755 77652 157597 58569 123085
2023-08-01 618671 1889717 1072952 893939 375376 867202 199228 997673 206938 180206 ... 422694 302353 1397173 480612 134793 157794 78196 144689 53329 114107
2023-09-01 565184 1847654 1083013 866457 368132 867562 204566 1030417 188694 179288 ... 440086 251645 1188982 376071 139730 110449 69657 135130 46999 107044
2023-10-01 588020 1958158 1121805 908253 386128 858520 209482 1058924 173431 186323 ... 427074 264313 1177955 365686 131858 111448 79054 126786 53875 119299
2023-11-01 637519 1870337 904282 762348 371185 725317 187859 894880 137343 166685 ... 390052 284303 1233382 386244 125945 126041 78630 123916 57701 125457
2023-12-01 1673468 3251911 1350709 1334426 609785 1373335 680801 1544279 400977 285542 ... 707661 993915 3893499 1085338 347397 376924 284711 302181 213062 419322

60 rows × 34 columns

In [ ]:
test_data = data.loc['2024-01-01':'2024-06-01']
test_data
Out[ ]:
ACEH SUMATERA UTARA SUMATERA BARAT RIAU JAMBI SUMATERA SELATAN BENGKULU LAMPUNG KEP. BANGKA BELITUNG KEP. RIAU ... SULAWESI UTARA SULAWESI TENGAH SULAWESI SELATAN SULAWESI TENGGARA GORONTALO SULAWESI BARAT MALUKU MALUKU UTARA PAPUA BARAT PAPUA
time_series
2024-01-01 1009785 4055407 1767621 1546102 665652 1425715 361373 1618490 250498 291092 ... 700470 941412 3390270 1200314 284274 396450 190408 190002 44841 129823
2024-02-01 937728 3392029 1758610 1449021 610850 1319045 308036 1338941 237943 290290 ... 628713 831294 3016298 1145554 270873 354721 156854 174338 38474 102856
2024-03-01 905565 3149185 1281044 1434953 612554 1285518 298351 1260766 224732 268990 ... 625920 809385 2891023 1039727 274795 325813 161337 163305 35649 103119
2024-04-01 1282532 3548654 1660760 1750903 886241 1854471 477429 1702675 297882 333667 ... 762190 1061864 3551378 1442912 376567 443291 190504 206819 36469 107380
2024-05-01 995794 3419857 1302524 1488391 662793 1326810 339591 1508526 237959 276392 ... 668197 814471 3087984 1070042 285885 342758 141499 161274 30025 90245
2024-06-01 1065780 3369808 1642366 1446350 665827 1361245 358206 1658113 235572 241548 ... 671549 774521 3145350 1110037 287451 344329 117608 143794 24109 80858

6 rows × 34 columns

Check data stationarity¶

Function to check stationarity using ACF plot¶

In [17]:
from statsmodels.graphics.tsaplots import plot_acf

def make_acf_plot(series):
    plot_acf(series, lags=36, title='Autocorrelation Plot for {}'.format(series.name))

Make ACF plot for each province¶

In [18]:
provinces = data.columns

for province in provinces:
    make_acf_plot(training_data[province])
c:\Users\Ryu\anaconda3\Lib\site-packages\statsmodels\graphics\utils.py:55: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`). Consider using `matplotlib.pyplot.close()`.
  fig = plt.figure()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image

Function to check stationarity using PACF Plot¶

In [19]:
from statsmodels.graphics.tsaplots import plot_pacf

def make_pacf_plot(series, lags):
    plot_pacf(series, lags=lags, title='Partial Autocorrelation Plot for {}'.format(series.name))

Make PACF plot for each province¶

In [20]:
for province in provinces: 
    max_lags = min(36, len(province) // 2)
    make_pacf_plot(training_data[province], max_lags)
c:\Users\Ryu\anaconda3\Lib\site-packages\statsmodels\graphics\utils.py:55: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`). Consider using `matplotlib.pyplot.close()`.
  fig = plt.figure()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image

Function to check stationarity using Augmented Dickey-Fuller¶

In [21]:
from statsmodels.tsa.stattools import adfuller

# Function to check stationarity using ADF test
def check_stationarity_adf(series, index, stationary_provinces, non_stationary_provinces):
    result = adfuller(series) 
    print(f"{index}. PROVINCE: {series.name}")
    print("   a. ADF Statistic:", result[0])
    print("   b. p-value:", result[1])
    if result[1] <= 0.05:
        print(f"   c. Stationarity: {series.name} is Stationary")
        stationary_provinces.append(series.name)  # Add to stationary list
    else:
        print(f"   c. Stationarity: {series.name} is Non-Stationary")
        non_stationary_provinces.append(series.name)  # Add to non-stationary list
    print("   d. Number of Lags:", result[2])
    print("   e. Number of Observations Used:", result[3])
    print("   f. Critical Values:")
    for key, value in result[4].items():
        print(f"   \t{key}: {value}")
    print(("=" * 50) + "\n")

Check stationarity for each province using Augmented Dickey-Fuller¶

In [22]:
# Lists to store stationary and non-stationary provinces
stationary_provinces = []
non_stationary_provinces = []

# Apply the check_stationarity_adf function to each province
i = 1
for province in data.columns:
    check_stationarity_adf(training_data[province], i, stationary_provinces, non_stationary_provinces)
    i += 1
1. PROVINCE: ACEH
   a. ADF Statistic: -2.6710185203108607
   b. p-value: 0.07918899093143678
   c. Stationarity: ACEH is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

2. PROVINCE: SUMATERA UTARA
   a. ADF Statistic: -3.641050892386336
   b. p-value: 0.005023016623325027
   c. Stationarity: SUMATERA UTARA is Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

3. PROVINCE: SUMATERA BARAT
   a. ADF Statistic: -3.027760309318199
   b. p-value: 0.03238201252177422
   c. Stationarity: SUMATERA BARAT is Stationary
   d. Number of Lags: 1
   e. Number of Observations Used: 58
   f. Critical Values:
   	1%: -3.548493559596539
   	5%: -2.912836594776334
   	10%: -2.594129155766944
==================================================

4. PROVINCE: RIAU
   a. ADF Statistic: -2.339328533334447
   b. p-value: 0.15959718785926064
   c. Stationarity: RIAU is Non-Stationary
   d. Number of Lags: 1
   e. Number of Observations Used: 58
   f. Critical Values:
   	1%: -3.548493559596539
   	5%: -2.912836594776334
   	10%: -2.594129155766944
==================================================

5. PROVINCE: JAMBI
   a. ADF Statistic: -3.4413152215306777
   b. p-value: 0.009628528086471496
   c. Stationarity: JAMBI is Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

6. PROVINCE: SUMATERA SELATAN
   a. ADF Statistic: -3.7966475064460465
   b. p-value: 0.0029418022353743896
   c. Stationarity: SUMATERA SELATAN is Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

7. PROVINCE: BENGKULU
   a. ADF Statistic: -2.4182335669918245
   b. p-value: 0.1366561115599484
   c. Stationarity: BENGKULU is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

8. PROVINCE: LAMPUNG
   a. ADF Statistic: -4.690990814504573
   b. p-value: 8.749399120685386e-05
   c. Stationarity: LAMPUNG is Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

9. PROVINCE: KEP. BANGKA BELITUNG
   a. ADF Statistic: -2.1514513677531246
   b. p-value: 0.2243349565012021
   c. Stationarity: KEP. BANGKA BELITUNG is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

10. PROVINCE: KEP. RIAU
   a. ADF Statistic: -2.612790568623438
   b. p-value: 0.09038242711224997
   c. Stationarity: KEP. RIAU is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

11. PROVINCE: DKI JAKARTA
   a. ADF Statistic: -1.6836826947450272
   b. p-value: 0.4395386444395364
   c. Stationarity: DKI JAKARTA is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

12. PROVINCE: JAWA BARAT
   a. ADF Statistic: -3.077859603812104
   b. p-value: 0.028235658904560344
   c. Stationarity: JAWA BARAT is Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

13. PROVINCE: JAWA TENGAH
   a. ADF Statistic: -3.7808535418814055
   b. p-value: 0.0031093965600096267
   c. Stationarity: JAWA TENGAH is Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

14. PROVINCE: DI YOGYAKARTA
   a. ADF Statistic: -3.804538339098204
   b. p-value: 0.0028612216647321454
   c. Stationarity: DI YOGYAKARTA is Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

15. PROVINCE: JAWA TIMUR
   a. ADF Statistic: -2.0485571752382805
   b. p-value: 0.2656963571084213
   c. Stationarity: JAWA TIMUR is Non-Stationary
   d. Number of Lags: 1
   e. Number of Observations Used: 58
   f. Critical Values:
   	1%: -3.548493559596539
   	5%: -2.912836594776334
   	10%: -2.594129155766944
==================================================

16. PROVINCE: BANTEN
   a. ADF Statistic: -3.0213835515011582
   b. p-value: 0.032945128666594825
   c. Stationarity: BANTEN is Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

17. PROVINCE: BALI
   a. ADF Statistic: -1.8090932798327368
   b. p-value: 0.3759565695603854
   c. Stationarity: BALI is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

18. PROVINCE: NUSA TENGGARA BARAT
   a. ADF Statistic: -2.199211026853943
   b. p-value: 0.20653193320898494
   c. Stationarity: NUSA TENGGARA BARAT is Non-Stationary
   d. Number of Lags: 1
   e. Number of Observations Used: 58
   f. Critical Values:
   	1%: -3.548493559596539
   	5%: -2.912836594776334
   	10%: -2.594129155766944
==================================================

19. PROVINCE: NUSA TENGGARA TIMUR
   a. ADF Statistic: -3.3566985947313377
   b. p-value: 0.012526617208591993
   c. Stationarity: NUSA TENGGARA TIMUR is Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

20. PROVINCE: KALIMANTAN BARAT
   a. ADF Statistic: -2.627592656292735
   b. p-value: 0.08742746046355293
   c. Stationarity: KALIMANTAN BARAT is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

21. PROVINCE: KALIMANTAN TENGAH
   a. ADF Statistic: -1.9834503302108013
   b. p-value: 0.29387636217954116
   c. Stationarity: KALIMANTAN TENGAH is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

22. PROVINCE: KALIMANTAN SELATAN
   a. ADF Statistic: -2.202627919206674
   b. p-value: 0.20529305674002185
   c. Stationarity: KALIMANTAN SELATAN is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

23. PROVINCE: KALIMANTAN TIMUR
   a. ADF Statistic: -1.727324034157437
   b. p-value: 0.41709213193376937
   c. Stationarity: KALIMANTAN TIMUR is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

24. PROVINCE: KALIMANTAN UTARA
   a. ADF Statistic: -2.4305054684521687
   b. p-value: 0.1333108975464708
   c. Stationarity: KALIMANTAN UTARA is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

25. PROVINCE: SULAWESI UTARA
   a. ADF Statistic: -1.5387773340473792
   b. p-value: 0.514249040182932
   c. Stationarity: SULAWESI UTARA is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

26. PROVINCE: SULAWESI TENGAH
   a. ADF Statistic: -1.564988024666247
   b. p-value: 0.5011533121191761
   c. Stationarity: SULAWESI TENGAH is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

27. PROVINCE: SULAWESI SELATAN
   a. ADF Statistic: -2.3407846462949733
   b. p-value: 0.15915118577115633
   c. Stationarity: SULAWESI SELATAN is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

28. PROVINCE: SULAWESI TENGGARA
   a. ADF Statistic: -1.860754094346674
   b. p-value: 0.35074274116989074
   c. Stationarity: SULAWESI TENGGARA is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

29. PROVINCE: GORONTALO
   a. ADF Statistic: -1.5840773077653814
   b. p-value: 0.4915868931562521
   c. Stationarity: GORONTALO is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

30. PROVINCE: SULAWESI BARAT
   a. ADF Statistic: -1.8899339923291565
   b. p-value: 0.33681119469576576
   c. Stationarity: SULAWESI BARAT is Non-Stationary
   d. Number of Lags: 3
   e. Number of Observations Used: 56
   f. Critical Values:
   	1%: -3.552928203580539
   	5%: -2.9147306250000002
   	10%: -2.595137155612245
==================================================

31. PROVINCE: MALUKU
   a. ADF Statistic: -3.157727868497206
   b. p-value: 0.022565694044091495
   c. Stationarity: MALUKU is Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

32. PROVINCE: MALUKU UTARA
   a. ADF Statistic: -1.3804271529592522
   b. p-value: 0.5916227900873192
   c. Stationarity: MALUKU UTARA is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

33. PROVINCE: PAPUA BARAT
   a. ADF Statistic: -2.4475441169750076
   b. p-value: 0.12876441996031857
   c. Stationarity: PAPUA BARAT is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

34. PROVINCE: PAPUA
   a. ADF Statistic: -2.1985390596052574
   b. p-value: 0.2067761211877392
   c. Stationarity: PAPUA is Non-Stationary
   d. Number of Lags: 0
   e. Number of Observations Used: 59
   f. Critical Values:
   	1%: -3.5463945337644063
   	5%: -2.911939409384601
   	10%: -2.5936515282964665
==================================================

List stationary and non-stationary provinces¶

In [23]:
# Print the results
print("Stationary Provinces:")
print(", ".join(stationary_provinces))
print("\nNon-Stationary Provinces:")
print(", ".join(non_stationary_provinces))
Stationary Provinces:
SUMATERA UTARA, SUMATERA BARAT, JAMBI, SUMATERA SELATAN, LAMPUNG, JAWA BARAT, JAWA TENGAH, DI YOGYAKARTA, BANTEN, NUSA TENGGARA TIMUR, MALUKU

Non-Stationary Provinces:
ACEH, RIAU, BENGKULU, KEP. BANGKA BELITUNG, KEP. RIAU, DKI JAKARTA, JAWA TIMUR, BALI, NUSA TENGGARA BARAT, KALIMANTAN BARAT, KALIMANTAN TENGAH, KALIMANTAN SELATAN, KALIMANTAN TIMUR, KALIMANTAN UTARA, SULAWESI UTARA, SULAWESI TENGAH, SULAWESI SELATAN, SULAWESI TENGGARA, GORONTALO, SULAWESI BARAT, MALUKU UTARA, PAPUA BARAT, PAPUA

Descriptive statistic¶

In [24]:
data = pd.read_csv("cleaned_data.csv")

# Set the 'time_series' column as the index
data.set_index('time_series', inplace=True)

data
Out[24]:
ACEH SUMATERA UTARA SUMATERA BARAT RIAU JAMBI SUMATERA SELATAN BENGKULU LAMPUNG KEP. BANGKA BELITUNG KEP. RIAU ... SULAWESI UTARA SULAWESI TENGAH SULAWESI SELATAN SULAWESI TENGGARA GORONTALO SULAWESI BARAT MALUKU MALUKU UTARA PAPUA BARAT PAPUA
time_series
2019-01-01 1387574 5094564 1667509 1990985 828879 1763349 414287 2082997 298322 434786 ... 256496 451254 2054894 534762 90789 197588 258094 125514 185287 313389
2019-02-01 1111607 3282713 1313185 1425092 652908 1294947 304721 1612674 240226 351865 ... 112937 308973 1402775 405350 48019 134391 193290 76500 143094 209857
2019-03-01 1113176 3442407 1420799 1541155 716028 1356470 336570 1606207 255054 358547 ... 197795 374463 1654575 436423 84467 163587 206894 166014 159903 224960
2019-04-01 1155705 3676763 1573606 1563303 547378 1099872 287546 1164672 199678 360392 ... 221246 374029 1799377 487941 102283 174495 216036 190003 152087 209282
2019-05-01 1070909 3469100 1511963 1574681 438508 917156 258241 877643 122301 358416 ... 235233 368161 1653101 445093 109827 152740 228658 163855 161711 235428
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2024-02-01 937728 3392029 1758610 1449021 610850 1319045 308036 1338941 237943 290290 ... 628713 831294 3016298 1145554 270873 354721 156854 174338 38474 102856
2024-03-01 905565 3149185 1281044 1434953 612554 1285518 298351 1260766 224732 268990 ... 625920 809385 2891023 1039727 274795 325813 161337 163305 35649 103119
2024-04-01 1282532 3548654 1660760 1750903 886241 1854471 477429 1702675 297882 333667 ... 762190 1061864 3551378 1442912 376567 443291 190504 206819 36469 107380
2024-05-01 995794 3419857 1302524 1488391 662793 1326810 339591 1508526 237959 276392 ... 668197 814471 3087984 1070042 285885 342758 141499 161274 30025 90245
2024-06-01 1065780 3369808 1642366 1446350 665827 1361245 358206 1658113 235572 241548 ... 671549 774521 3145350 1110037 287451 344329 117608 143794 24109 80858

66 rows × 34 columns

Calculating descriptive statistics¶

In [25]:
data.describe().T.round(2)
Out[25]:
count mean std min 25% 50% 75% max
ACEH 66.0 718680.58 382615.41 157764.0 445123.25 576018.0 981277.50 1800152.0
SUMATERA UTARA 66.0 2295125.79 1142919.54 442072.0 1441869.00 1880204.0 3241127.25 5774370.0
SUMATERA BARAT 66.0 1102163.92 450389.00 226466.0 799032.25 1024953.0 1349306.25 2910574.0
RIAU 66.0 891240.53 468403.57 215636.0 513913.00 732084.0 1128224.50 2179811.0
JAMBI 66.0 388174.82 176172.31 114969.0 251382.75 321290.0 519181.75 886241.0
SUMATERA SELATAN 66.0 845210.15 364133.13 223800.0 560212.50 725401.0 1080299.75 1854471.0
BENGKULU 66.0 221263.94 110636.98 61421.0 140032.75 182751.0 293212.75 680801.0
LAMPUNG 66.0 1037864.09 367953.26 356647.0 774298.50 917292.0 1274990.50 2082997.0
KEP. BANGKA BELITUNG 66.0 150078.71 71315.41 34757.0 93299.25 136206.5 197383.75 400977.0
KEP. RIAU 66.0 172271.14 117132.36 17661.0 74127.25 143404.0 262817.50 460205.0
DKI JAKARTA 66.0 4433348.74 1552839.20 800210.0 3491046.75 4554059.5 5544983.00 7514043.0
JAWA BARAT 66.0 10613106.47 3110295.40 2572442.0 8589925.00 10942225.0 12650204.00 17758640.0
JAWA TENGAH 66.0 10193064.50 3010379.59 3635334.0 8138358.50 10276045.5 11654916.75 17809415.0
DI YOGYAKARTA 66.0 2108625.33 724740.63 665050.0 1681075.50 2068626.5 2569083.25 4267235.0
JAWA TIMUR 66.0 13596095.94 5006523.07 3397447.0 9816701.50 12883755.5 17434262.75 27190607.0
BANTEN 66.0 3253867.20 776173.10 1058760.0 2693869.25 3323129.0 3904923.25 4804045.0
BALI 66.0 1266224.14 483079.22 261406.0 883655.50 1252137.0 1668700.25 2090327.0
NUSA TENGGARA BARAT 66.0 585661.68 391182.33 114758.0 287080.50 401643.0 772498.25 1718321.0
NUSA TENGGARA TIMUR 66.0 385251.06 199238.15 78698.0 233290.50 316738.0 590989.75 800071.0
KALIMANTAN BARAT 66.0 382871.83 238703.12 58284.0 193327.50 301044.5 627326.25 965873.0
KALIMANTAN TENGAH 66.0 300917.70 166820.62 75118.0 178419.50 236010.5 458173.00 867859.0
KALIMANTAN SELATAN 66.0 554253.20 269398.74 140584.0 379606.25 475192.0 685249.75 1781498.0
KALIMANTAN TIMUR 66.0 514911.64 297020.13 91121.0 218684.25 527827.5 767912.50 1174998.0
KALIMANTAN UTARA 66.0 53940.70 40851.64 8536.0 25372.00 33838.0 76940.00 144538.0
SULAWESI UTARA 66.0 352061.21 150507.57 58036.0 262433.75 334257.5 417123.25 762190.0
SULAWESI TENGAH 66.0 400738.73 259692.87 65380.0 174487.25 371095.0 573219.50 1061864.0
SULAWESI SELATAN 66.0 1772237.68 990506.82 287133.0 914344.50 1726976.0 2440798.75 4619651.0
SULAWESI TENGGARA 66.0 621230.98 470552.20 71224.0 210411.00 437835.5 1066626.00 1592211.0
GORONTALO 66.0 129516.33 69744.69 27476.0 92247.75 114182.0 139841.75 376567.0
SULAWESI BARAT 66.0 216077.35 144775.77 22014.0 88399.00 168413.0 343936.25 611768.0
MALUKU 66.0 87080.08 67570.06 7978.0 46422.50 60143.0 102468.75 284711.0
MALUKU UTARA 66.0 108003.88 56533.29 12649.0 52433.00 118814.0 147397.25 302181.0
PAPUA BARAT 66.0 60737.50 48973.59 9348.0 34532.50 40961.5 56455.00 213062.0
PAPUA 66.0 114269.74 74771.29 24783.0 69771.00 86937.5 125236.00 419322.0

Mean of domestic tourist visits per province¶

In [26]:
# Calculating the mean for each feature
mean = data.mean().round(2)

# Creating a mean plot
plt.figure(figsize=(12, 6))
plt.plot(mean, marker='o', color='r')

# Adding numbers to each point on the plot
for i, value in enumerate(mean):
    plt.text(i, value, f'{value/1e6:.2f}', ha='center', va='bottom', fontsize=10)

plt.title('Mean Number of Domestic Tourist Visits per Province (January 2019 - June 2024)')
plt.xlabel('Province')
plt.ylabel('Mean (millions)')
plt.xticks(rotation=90)
plt.grid()
plt.tight_layout()
plt.show()
No description has been provided for this image

Median of domestic tourist visits per province¶

In [27]:
# Calculating the median for each feature
median = data.median().round(2)

# Creating a median plot
plt.figure(figsize=(12, 6))
plt.plot(median.index, median / 1e6, marker='o', color='blue', linestyle='-', label='Median Visits')

# Adding numbers to each point on the plot
for i, value in enumerate(median):
    plt.text(i, value / 1e6, f'{value / 1e6:.2f}', ha='center', va='bottom', fontsize=9, color='darkblue')

# Adding labels and title
plt.title('Median Number of Domestic Tourist Visits per Province (January 2019 - June 2024)', fontsize=14)
plt.xlabel('Province', fontsize=12)
plt.ylabel('Median (in millions)', fontsize=12)
plt.xticks(rotation=90, fontsize=10)
plt.yticks(fontsize=10)
plt.grid(alpha=0.3)
plt.legend()

# Show the plot
plt.show()
No description has been provided for this image

Standard deviation of domestic tourist visits per province¶

In [28]:
# Calculating the standard deviation
std = data.std().round(2)

# Creating a standard deviation plot
plt.figure(figsize=(12, 6))
plt.plot(std, marker='o', color='r')

# Adding numbers to each point on the plot
for i, value in enumerate(std):
    plt.text(i, value, f'{value/1e6:.2f}', ha='center', va='bottom', fontsize=10)

plt.title('Standard Deviation of Domestic Tourist Visits per Province (January 2019 - June 2024)')
plt.xlabel('Province')
plt.ylabel('Standard Deviation (millions)')
plt.xticks(rotation=90)
plt.grid()
plt.show()
No description has been provided for this image

Min and max of domestic tourist visits per province¶

In [29]:
# Calculating the min and max value for each feature
min_data = data.min()
max_data = data.max()

# Creating a min and max plot
plt.figure(figsize=(10, 6))
plt.plot(min_data, marker='o', color='red', label='Min')
plt.plot(max_data, marker='o', color='blue', label='Max')
plt.title('Min and Max Value of Domestic Tourist Visits per Province (January 2019 - June 2024))')
plt.xlabel('Province')
plt.ylabel('Trips (millions)')
plt.xticks(rotation=90)
plt.legend()
plt.grid(True)
plt.show()
No description has been provided for this image

Build model¶

Initialize variables¶

In [30]:
import warnings
from statsmodels.tsa.arima.model import ARIMA
from sklearn.metrics import mean_absolute_percentage_error, mean_absolute_error

# Suppress ARIMA warnings
warnings.filterwarnings("ignore")

# List to store the predictions
all_provinces_predictions = pd.DataFrame()

# Dictionary to store the good prediction provinces
good_predictions = {}

# Initialize provinces
provinces = data.columns

# Define the prediction period
start = len(training_data)
end = len(training_data) + len(test_data) - 1

params = [(p, d, q) for p in range(5) for d in range(2) for q in range(5)]

params
Out[30]:
[(0, 0, 0),
 (0, 0, 1),
 (0, 0, 2),
 (0, 0, 3),
 (0, 0, 4),
 (0, 1, 0),
 (0, 1, 1),
 (0, 1, 2),
 (0, 1, 3),
 (0, 1, 4),
 (1, 0, 0),
 (1, 0, 1),
 (1, 0, 2),
 (1, 0, 3),
 (1, 0, 4),
 (1, 1, 0),
 (1, 1, 1),
 (1, 1, 2),
 (1, 1, 3),
 (1, 1, 4),
 (2, 0, 0),
 (2, 0, 1),
 (2, 0, 2),
 (2, 0, 3),
 (2, 0, 4),
 (2, 1, 0),
 (2, 1, 1),
 (2, 1, 2),
 (2, 1, 3),
 (2, 1, 4),
 (3, 0, 0),
 (3, 0, 1),
 (3, 0, 2),
 (3, 0, 3),
 (3, 0, 4),
 (3, 1, 0),
 (3, 1, 1),
 (3, 1, 2),
 (3, 1, 3),
 (3, 1, 4),
 (4, 0, 0),
 (4, 0, 1),
 (4, 0, 2),
 (4, 0, 3),
 (4, 0, 4),
 (4, 1, 0),
 (4, 1, 1),
 (4, 1, 2),
 (4, 1, 3),
 (4, 1, 4)]

Function to implement model validation using grid search¶

In [31]:
def make_arima_prediction(train, test):
    lowest_mape = float("inf")
    best_param = None
    best_prediction = None
    lowest_mae = float("inf")

    for param in params:
        arima = ARIMA(endog=train, order=param, seasonal_order=(1, 0, 0, 12))
        arima = arima.fit()
        
        prediction = arima.predict(start=start, end=end, typ="levels")
        
        mape = mean_absolute_percentage_error(test, prediction) * 100
        mae = mean_absolute_error(test, prediction)        
        
        print(f'ARIMA{param}')
        print(f'MAPE: {mape.round(2)}%')
        print(f'MAE: {mae.round(2)}')
        print("=" * 50)
        
        if mape < lowest_mape:
            lowest_mape = mape
            lowest_mae = mae
            best_param = param
            best_prediction = prediction
            
            if lowest_mape <= 20:
                good_predictions[train.name] = lowest_mape 
            
    return best_param, lowest_mape, lowest_mae, best_prediction

Function to make prediction vs actual plot¶

In [32]:
def plot_predictions_vs_actual(prediction_series, actual_series, xlabel="Time", ylabel="Values"):
    # Check if the index of prediction_series is already a DatetimeIndex, if not, convert it
    if isinstance(prediction_series.index, pd.PeriodIndex):
        prediction_series.index = prediction_series.index.to_timestamp()  # Converts PeriodIndex to DatetimeIndex
    elif not isinstance(prediction_series.index, pd.DatetimeIndex):
        prediction_series.index = pd.to_datetime(prediction_series.index)  # If it's neither, convert it to DatetimeIndex

    # Check if the index of actual_series is already a DatetimeIndex, if not, convert it
    if isinstance(actual_series.index, pd.PeriodIndex):
        actual_series.index = actual_series.index.to_timestamp()  # Converts PeriodIndex to DatetimeIndex
    elif not isinstance(actual_series.index, pd.DatetimeIndex):
        actual_series.index = pd.to_datetime(actual_series.index)  # If it's neither, convert it to DatetimeIndex

    # Plot the data
    plt.figure(figsize=(8, 4))
    prediction_series.plot(legend=True, label='Predictions')
    actual_series.plot(legend=True, label='Actual')
    
    # Customize the plot
    plt.title("Prediction vs Actual " + actual_series.name)
    plt.xlabel(xlabel)
    plt.ylabel(ylabel)
    plt.show()

ACEH (1)¶

Split ACEH dataset¶

In [33]:
train_aceh = training_data["ACEH"]
test_aceh = test_data["ACEH"]

Make prediction for ACEH¶

In [34]:
best_param_aceh, lowest_mape_aceh, lowest_mae_aceh, prediction_aceh = make_arima_prediction(train_aceh, test_aceh)
    
all_provinces_predictions['ACEH'] = prediction_aceh
ARIMA(0, 0, 0)
MAPE: 31.72%
MAE: 338747.81
==================================================
ARIMA(0, 0, 1)
MAPE: 29.85%
MAE: 318106.18
==================================================
ARIMA(0, 0, 2)
MAPE: 31.31%
MAE: 331444.92
==================================================
ARIMA(0, 0, 3)
MAPE: 34.04%
MAE: 360208.2
==================================================
ARIMA(0, 0, 4)
MAPE: 35.36%
MAE: 363933.1
==================================================
ARIMA(0, 1, 0)
MAPE: 63.78%
MAE: 636131.83
==================================================
ARIMA(0, 1, 1)
MAPE: 25.57%
MAE: 248305.97
==================================================
ARIMA(0, 1, 2)
MAPE: 29.51%
MAE: 286487.71
==================================================
ARIMA(0, 1, 3)
MAPE: 27.93%
MAE: 271751.96
==================================================
ARIMA(0, 1, 4)
MAPE: 27.36%
MAE: 265776.65
==================================================
ARIMA(1, 0, 0)
MAPE: 24.83%
MAE: 243150.51
==================================================
ARIMA(1, 0, 1)
MAPE: 17.98%
MAE: 177010.23
==================================================
ARIMA(1, 0, 2)
MAPE: 25.41%
MAE: 244370.44
==================================================
ARIMA(1, 0, 3)
MAPE: 24.07%
MAE: 232536.39
==================================================
ARIMA(1, 0, 4)
MAPE: 24.81%
MAE: 238568.67
==================================================
ARIMA(1, 1, 0)
MAPE: 34.93%
MAE: 341719.09
==================================================
ARIMA(1, 1, 1)
MAPE: 34.34%
MAE: 335705.15
==================================================
ARIMA(1, 1, 2)
MAPE: 31.62%
MAE: 308039.3
==================================================
ARIMA(1, 1, 3)
MAPE: 27.82%
MAE: 270507.6
==================================================
ARIMA(1, 1, 4)
MAPE: 29.22%
MAE: 285646.96
==================================================
ARIMA(2, 0, 0)
MAPE: 19.23%
MAE: 186778.0
==================================================
ARIMA(2, 0, 1)
MAPE: 20.43%
MAE: 197335.83
==================================================
ARIMA(2, 0, 2)
MAPE: 24.43%
MAE: 234523.36
==================================================
ARIMA(2, 0, 3)
MAPE: 24.66%
MAE: 238127.36
==================================================
ARIMA(2, 0, 4)
MAPE: 25.88%
MAE: 249676.76
==================================================
ARIMA(2, 1, 0)
MAPE: 34.51%
MAE: 337451.19
==================================================
ARIMA(2, 1, 1)
MAPE: 19.29%
MAE: 188822.34
==================================================
ARIMA(2, 1, 2)
MAPE: 19.72%
MAE: 193492.33
==================================================
ARIMA(2, 1, 3)
MAPE: 26.49%
MAE: 257712.65
==================================================
ARIMA(2, 1, 4)
MAPE: 26.8%
MAE: 262113.92
==================================================
ARIMA(3, 0, 0)
MAPE: 21.51%
MAE: 207032.69
==================================================
ARIMA(3, 0, 1)
MAPE: 18.87%
MAE: 181563.26
==================================================
ARIMA(3, 0, 2)
MAPE: 28.05%
MAE: 273862.91
==================================================
ARIMA(3, 0, 3)
MAPE: 23.47%
MAE: 230193.16
==================================================
ARIMA(3, 0, 4)
MAPE: 26.06%
MAE: 253195.32
==================================================
ARIMA(3, 1, 0)
MAPE: 30.68%
MAE: 298830.38
==================================================
ARIMA(3, 1, 1)
MAPE: 26.84%
MAE: 260013.19
==================================================
ARIMA(3, 1, 2)
MAPE: 25.74%
MAE: 254273.55
==================================================
ARIMA(3, 1, 3)
MAPE: 29.82%
MAE: 293614.2
==================================================
ARIMA(3, 1, 4)
MAPE: 19.31%
MAE: 193209.52
==================================================
ARIMA(4, 0, 0)
MAPE: 22.81%
MAE: 218746.36
==================================================
ARIMA(4, 0, 1)
MAPE: 22.84%
MAE: 219259.33
==================================================
ARIMA(4, 0, 2)
MAPE: 23.72%
MAE: 231704.73
==================================================
ARIMA(4, 0, 3)
MAPE: 24.5%
MAE: 238744.37
==================================================
ARIMA(4, 0, 4)
MAPE: 20.35%
MAE: 199487.9
==================================================
ARIMA(4, 1, 0)
MAPE: 24.28%
MAE: 242036.76
==================================================
ARIMA(4, 1, 1)
MAPE: 24.6%
MAE: 244359.45
==================================================
ARIMA(4, 1, 2)
MAPE: 30.14%
MAE: 292821.97
==================================================
ARIMA(4, 1, 3)
MAPE: 20.71%
MAE: 207253.37
==================================================
ARIMA(4, 1, 4)
MAPE: 27.48%
MAE: 270398.02
==================================================

Best Parameter, lowest MAPE, and lowest MAE for ACEH¶

In [35]:
print("Best parameters model for ACEH:", best_param_aceh)
print(f"with the lowest MAPE: {lowest_mape_aceh.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_aceh.round(2)}")
Best parameters model for ACEH: (1, 0, 1)
with the lowest MAPE: 17.98%
with the lowest MAE: 177010.23

Make prediction vs actual plot for ACEH¶

In [36]:
plot_predictions_vs_actual(prediction_series=prediction_aceh, actual_series=test_aceh)
No description has been provided for this image

SUMATERA UTARA (2)¶

Split SUMATERA UTARA dataset¶

In [37]:
train_sumatera_utara = training_data["SUMATERA UTARA"]
test_sumatera_utara = test_data["SUMATERA UTARA"]

Make prediction for SUMATERA UTARA¶

In [38]:
best_param_sumatera_utara, lowest_mape_sumatera_utara, lowest_mae_sumatera_utara, prediction_sumatera_utara = make_arima_prediction(train_sumatera_utara, test_sumatera_utara)

all_provinces_predictions['SUMATERA UTARA'] = prediction_sumatera_utara
ARIMA(0, 0, 0)
MAPE: 38.69%
MAE: 1369150.22
==================================================
ARIMA(0, 0, 1)
MAPE: 34.8%
MAE: 1213032.03
==================================================
ARIMA(0, 0, 2)
MAPE: 32.25%
MAE: 1129022.1
==================================================
ARIMA(0, 0, 3)
MAPE: 26.67%
MAE: 930054.78
==================================================
ARIMA(0, 0, 4)
MAPE: 24.16%
MAE: 840963.83
==================================================
ARIMA(0, 1, 0)
MAPE: 8.83%
MAE: 325799.85
==================================================
ARIMA(0, 1, 1)
MAPE: 24.94%
MAE: 891160.99
==================================================
ARIMA(0, 1, 2)
MAPE: 25.7%
MAE: 916638.84
==================================================
ARIMA(0, 1, 3)
MAPE: 26.33%
MAE: 938075.43
==================================================
ARIMA(0, 1, 4)
MAPE: 26.27%
MAE: 935898.58
==================================================
ARIMA(1, 0, 0)
MAPE: 19.93%
MAE: 694242.75
==================================================
ARIMA(1, 0, 1)
MAPE: 21.37%
MAE: 749336.46
==================================================
ARIMA(1, 0, 2)
MAPE: 20.35%
MAE: 713314.42
==================================================
ARIMA(1, 0, 3)
MAPE: 19.35%
MAE: 677558.16
==================================================
ARIMA(1, 0, 4)
MAPE: 16.21%
MAE: 566372.74
==================================================
ARIMA(1, 1, 0)
MAPE: 18.04%
MAE: 654532.26
==================================================
ARIMA(1, 1, 1)
MAPE: 25.71%
MAE: 916745.73
==================================================
ARIMA(1, 1, 2)
MAPE: 28.63%
MAE: 1016240.4
==================================================
ARIMA(1, 1, 3)
MAPE: 26.28%
MAE: 936538.45
==================================================
ARIMA(1, 1, 4)
MAPE: 25.57%
MAE: 911111.38
==================================================
ARIMA(2, 0, 0)
MAPE: 20.02%
MAE: 702898.12
==================================================
ARIMA(2, 0, 1)
MAPE: 20.85%
MAE: 731799.03
==================================================
ARIMA(2, 0, 2)
MAPE: 20.22%
MAE: 708958.17
==================================================
ARIMA(2, 0, 3)
MAPE: 19.41%
MAE: 679208.99
==================================================
ARIMA(2, 0, 4)
MAPE: 16.6%
MAE: 579933.28
==================================================
ARIMA(2, 1, 0)
MAPE: 21.3%
MAE: 766514.68
==================================================
ARIMA(2, 1, 1)
MAPE: 27.88%
MAE: 989673.9
==================================================
ARIMA(2, 1, 2)
MAPE: 28.6%
MAE: 1014981.02
==================================================
ARIMA(2, 1, 3)
MAPE: 32.95%
MAE: 1165868.73
==================================================
ARIMA(2, 1, 4)
MAPE: 28.26%
MAE: 1002980.37
==================================================
ARIMA(3, 0, 0)
MAPE: 20.52%
MAE: 720263.14
==================================================
ARIMA(3, 0, 1)
MAPE: 20.46%
MAE: 718775.71
==================================================
ARIMA(3, 0, 2)
MAPE: 18.79%
MAE: 656321.94
==================================================
ARIMA(3, 0, 3)
MAPE: 18.21%
MAE: 635941.88
==================================================
ARIMA(3, 0, 4)
MAPE: 18.52%
MAE: 645235.1
==================================================
ARIMA(3, 1, 0)
MAPE: 23.59%
MAE: 844221.48
==================================================
ARIMA(3, 1, 1)
MAPE: 26.28%
MAE: 935894.51
==================================================
ARIMA(3, 1, 2)
MAPE: 30.33%
MAE: 1079404.52
==================================================
ARIMA(3, 1, 3)
MAPE: 28.92%
MAE: 1025806.14
==================================================
ARIMA(3, 1, 4)
MAPE: 28.21%
MAE: 1000250.32
==================================================
ARIMA(4, 0, 0)
MAPE: 20.28%
MAE: 712340.07
==================================================
ARIMA(4, 0, 1)
MAPE: 20.06%
MAE: 705232.22
==================================================
ARIMA(4, 0, 2)
MAPE: 18.78%
MAE: 656902.93
==================================================
ARIMA(4, 0, 3)
MAPE: 18.96%
MAE: 662540.84
==================================================
ARIMA(4, 0, 4)
MAPE: 24.05%
MAE: 836262.8
==================================================
ARIMA(4, 1, 0)
MAPE: 28.88%
MAE: 1026302.49
==================================================
ARIMA(4, 1, 1)
MAPE: 28.43%
MAE: 1011246.27
==================================================
ARIMA(4, 1, 2)
MAPE: 27.69%
MAE: 985943.88
==================================================
ARIMA(4, 1, 3)
MAPE: 30.84%
MAE: 1096844.19
==================================================
ARIMA(4, 1, 4)
MAPE: 31.89%
MAE: 1135414.33
==================================================

Best parameter, lowest MAPE, and lowest MAE for SUMATERA UTARA¶

In [39]:
print(f"Best parameters model for SUMATERA UTARA:", best_param_sumatera_utara)
print(f"with the lowest MAPE: {lowest_mape_sumatera_utara.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_sumatera_utara.round(2)}")
Best parameters model for SUMATERA UTARA: (0, 1, 0)
with the lowest MAPE: 8.83%
with the lowest MAE: 325799.85

Make prediction vs actual plot for SUMATERA UTARA¶

In [40]:
plot_predictions_vs_actual(prediction_series=prediction_sumatera_utara, actual_series=test_sumatera_utara)
No description has been provided for this image

SUMATERA BARAT (3)¶

Split SUMATERA BARAT dataset¶

In [41]:
train_sumatera_barat = training_data["SUMATERA BARAT"]
test_sumatera_barat = test_data["SUMATERA BARAT"]

Make prediction for SUMATERA BARAT¶

In [42]:
best_param_sumatera_barat, lowest_mape_sumatera_barat, lowest_mae_sumatera_barat, prediction_sumatera_barat = make_arima_prediction(train_sumatera_barat, test_sumatera_barat)

all_provinces_predictions['SUMATERA BARAT'] = prediction_sumatera_barat
ARIMA(0, 0, 0)
MAPE: 32.42%
MAE: 527420.53
==================================================
ARIMA(0, 0, 1)
MAPE: 28.37%
MAE: 462523.71
==================================================
ARIMA(0, 0, 2)
MAPE: 26.88%
MAE: 440030.29
==================================================
ARIMA(0, 0, 3)
MAPE: 22.88%
MAE: 380527.07
==================================================
ARIMA(0, 0, 4)
MAPE: 22.89%
MAE: 380766.92
==================================================
ARIMA(0, 1, 0)
MAPE: 15.39%
MAE: 257396.4
==================================================
ARIMA(0, 1, 1)
MAPE: 24.71%
MAE: 408444.19
==================================================
ARIMA(0, 1, 2)
MAPE: 24.37%
MAE: 402234.82
==================================================
ARIMA(0, 1, 3)
MAPE: 24.68%
MAE: 405844.46
==================================================
ARIMA(0, 1, 4)
MAPE: 32.46%
MAE: 524192.45
==================================================
ARIMA(1, 0, 0)
MAPE: 22.94%
MAE: 379415.1
==================================================
ARIMA(1, 0, 1)
MAPE: 22.34%
MAE: 371566.4
==================================================
ARIMA(1, 0, 2)
MAPE: 21.16%
MAE: 353590.74
==================================================
ARIMA(1, 0, 3)
MAPE: 22.98%
MAE: 382020.47
==================================================
ARIMA(1, 0, 4)
MAPE: 20.31%
MAE: 337513.95
==================================================
ARIMA(1, 1, 0)
MAPE: 20.33%
MAE: 341485.97
==================================================
ARIMA(1, 1, 1)
MAPE: 23.38%
MAE: 386581.14
==================================================
ARIMA(1, 1, 2)
MAPE: 29.98%
MAE: 487630.96
==================================================
ARIMA(1, 1, 3)
MAPE: 30.07%
MAE: 488966.53
==================================================
ARIMA(1, 1, 4)
MAPE: 32.83%
MAE: 531069.4
==================================================
ARIMA(2, 0, 0)
MAPE: 22.5%
MAE: 373933.59
==================================================
ARIMA(2, 0, 1)
MAPE: 21.9%
MAE: 364655.53
==================================================
ARIMA(2, 0, 2)
MAPE: 21.38%
MAE: 356450.93
==================================================
ARIMA(2, 0, 3)
MAPE: 23.11%
MAE: 383981.34
==================================================
ARIMA(2, 0, 4)
MAPE: 20.4%
MAE: 339419.38
==================================================
ARIMA(2, 1, 0)
MAPE: 21.71%
MAE: 363033.06
==================================================
ARIMA(2, 1, 1)
MAPE: 29.79%
MAE: 484418.6
==================================================
ARIMA(2, 1, 2)
MAPE: 30.59%
MAE: 496439.89
==================================================
ARIMA(2, 1, 3)
MAPE: 22.57%
MAE: 371594.15
==================================================
ARIMA(2, 1, 4)
MAPE: 33.51%
MAE: 540781.84
==================================================
ARIMA(3, 0, 0)
MAPE: 22.5%
MAE: 374020.76
==================================================
ARIMA(3, 0, 1)
MAPE: 22.51%
MAE: 374352.48
==================================================
ARIMA(3, 0, 2)
MAPE: 22.49%
MAE: 373154.98
==================================================
ARIMA(3, 0, 3)
MAPE: 20.63%
MAE: 341049.52
==================================================
ARIMA(3, 0, 4)
MAPE: 17.39%
MAE: 294908.03
==================================================
ARIMA(3, 1, 0)
MAPE: 23.18%
MAE: 383777.45
==================================================
ARIMA(3, 1, 1)
MAPE: 29.79%
MAE: 484403.26
==================================================
ARIMA(3, 1, 2)
MAPE: 35.26%
MAE: 570993.33
==================================================
ARIMA(3, 1, 3)
MAPE: 28.52%
MAE: 458953.52
==================================================
ARIMA(3, 1, 4)
MAPE: 31.28%
MAE: 506232.74
==================================================
ARIMA(4, 0, 0)
MAPE: 22.49%
MAE: 373611.77
==================================================
ARIMA(4, 0, 1)
MAPE: 22.58%
MAE: 375434.56
==================================================
ARIMA(4, 0, 2)
MAPE: 21.99%
MAE: 365066.35
==================================================
ARIMA(4, 0, 3)
MAPE: 20.91%
MAE: 348996.58
==================================================
ARIMA(4, 0, 4)
MAPE: 17.71%
MAE: 299150.69
==================================================
ARIMA(4, 1, 0)
MAPE: 27.0%
MAE: 444119.9
==================================================
ARIMA(4, 1, 1)
MAPE: 27.29%
MAE: 448170.42
==================================================
ARIMA(4, 1, 2)
MAPE: 28.01%
MAE: 459907.24
==================================================
ARIMA(4, 1, 3)
MAPE: 25.6%
MAE: 421012.52
==================================================
ARIMA(4, 1, 4)
MAPE: 46.3%
MAE: 730797.96
==================================================

Best parameter, lowest MAPE, and lowest MAE for SUMATERA BARAT¶

In [43]:
print(f"Best parameters model for SUMATERA BARAT:", best_param_sumatera_barat)
print(f"with the lowest MAPE: {lowest_mape_sumatera_barat.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_sumatera_barat.round(2)}")
Best parameters model for SUMATERA BARAT: (0, 1, 0)
with the lowest MAPE: 15.39%
with the lowest MAE: 257396.4

Make prediction vs actual plot for SUMATERA BARAT¶

In [44]:
plot_predictions_vs_actual(prediction_series=prediction_sumatera_barat, actual_series=test_sumatera_barat)
No description has been provided for this image

RIAU (4)¶

Split RIAU dataset¶

In [45]:
train_riau = training_data["RIAU"] 
test_riau = test_data["RIAU"]

Make prediction for RIAU¶

In [46]:
best_param_riau, lowest_mape_riau, lowest_mae_riau, prediction_riau = make_arima_prediction(train_riau, test_riau)

all_provinces_predictions['RIAU'] = prediction_riau
ARIMA(0, 0, 0)
MAPE: 46.17%
MAE: 705927.38
==================================================
ARIMA(0, 0, 1)
MAPE: 41.99%
MAE: 641069.11
==================================================
ARIMA(0, 0, 2)
MAPE: 40.12%
MAE: 615238.22
==================================================
ARIMA(0, 0, 3)
MAPE: 34.34%
MAE: 528950.93
==================================================
ARIMA(0, 0, 4)
MAPE: 32.11%
MAE: 493688.9
==================================================
ARIMA(0, 1, 0)
MAPE: 12.32%
MAE: 194291.8
==================================================
ARIMA(0, 1, 1)
MAPE: 27.87%
MAE: 429284.56
==================================================
ARIMA(0, 1, 2)
MAPE: 28.48%
MAE: 438552.94
==================================================
ARIMA(0, 1, 3)
MAPE: 28.91%
MAE: 445452.25
==================================================
ARIMA(0, 1, 4)
MAPE: 28.92%
MAE: 445636.29
==================================================
ARIMA(1, 0, 0)
MAPE: 24.52%
MAE: 376985.16
==================================================
ARIMA(1, 0, 1)
MAPE: 26.53%
MAE: 407464.94
==================================================
ARIMA(1, 0, 2)
MAPE: 25.97%
MAE: 398970.81
==================================================
ARIMA(1, 0, 3)
MAPE: 24.41%
MAE: 375602.53
==================================================
ARIMA(1, 0, 4)
MAPE: 20.2%
MAE: 312144.93
==================================================
ARIMA(1, 1, 0)
MAPE: 22.74%
MAE: 352013.62
==================================================
ARIMA(1, 1, 1)
MAPE: 28.46%
MAE: 438255.12
==================================================
ARIMA(1, 1, 2)
MAPE: 28.59%
MAE: 440165.15
==================================================
ARIMA(1, 1, 3)
MAPE: 28.9%
MAE: 445218.8
==================================================
ARIMA(1, 1, 4)
MAPE: 28.13%
MAE: 434590.26
==================================================
ARIMA(2, 0, 0)
MAPE: 25.51%
MAE: 392152.22
==================================================
ARIMA(2, 0, 1)
MAPE: 26.51%
MAE: 407157.49
==================================================
ARIMA(2, 0, 2)
MAPE: 25.92%
MAE: 398118.16
==================================================
ARIMA(2, 0, 3)
MAPE: 24.65%
MAE: 378761.87
==================================================
ARIMA(2, 0, 4)
MAPE: 20.57%
MAE: 318169.65
==================================================
ARIMA(2, 1, 0)
MAPE: 25.03%
MAE: 386434.66
==================================================
ARIMA(2, 1, 1)
MAPE: 28.4%
MAE: 437384.03
==================================================
ARIMA(2, 1, 2)
MAPE: 30.21%
MAE: 464487.96
==================================================
ARIMA(2, 1, 3)
MAPE: 25.48%
MAE: 397233.41
==================================================
ARIMA(2, 1, 4)
MAPE: 25.89%
MAE: 403543.68
==================================================
ARIMA(3, 0, 0)
MAPE: 25.87%
MAE: 397525.94
==================================================
ARIMA(3, 0, 1)
MAPE: 25.79%
MAE: 396455.25
==================================================
ARIMA(3, 0, 2)
MAPE: 23.74%
MAE: 366508.35
==================================================
ARIMA(3, 0, 3)
MAPE: 22.82%
MAE: 351301.4
==================================================
ARIMA(3, 0, 4)
MAPE: 20.9%
MAE: 322540.38
==================================================
ARIMA(3, 1, 0)
MAPE: 26.93%
MAE: 414757.64
==================================================
ARIMA(3, 1, 1)
MAPE: 28.94%
MAE: 445493.72
==================================================
ARIMA(3, 1, 2)
MAPE: 30.59%
MAE: 471223.27
==================================================
ARIMA(3, 1, 3)
MAPE: 25.72%
MAE: 400855.72
==================================================
ARIMA(3, 1, 4)
MAPE: 25.7%
MAE: 400970.49
==================================================
ARIMA(4, 0, 0)
MAPE: 26.16%
MAE: 401780.8
==================================================
ARIMA(4, 0, 1)
MAPE: 25.87%
MAE: 397737.35
==================================================
ARIMA(4, 0, 2)
MAPE: 23.88%
MAE: 367341.46
==================================================
ARIMA(4, 0, 3)
MAPE: 22.95%
MAE: 353607.62
==================================================
ARIMA(4, 0, 4)
MAPE: 20.23%
MAE: 312542.18
==================================================
ARIMA(4, 1, 0)
MAPE: 30.6%
MAE: 472238.39
==================================================
ARIMA(4, 1, 1)
MAPE: 30.39%
MAE: 469160.96
==================================================
ARIMA(4, 1, 2)
MAPE: 29.6%
MAE: 457917.62
==================================================
ARIMA(4, 1, 3)
MAPE: 31.72%
MAE: 488714.9
==================================================
ARIMA(4, 1, 4)
MAPE: 29.55%
MAE: 456994.91
==================================================

Best parameter, lowest MAPE, and lowest MAE for RIAU¶

In [47]:
print(f"Best parameters model for RIAU:", best_param_riau)
print(f"with the lowest MAPE: {lowest_mape_riau.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_riau.round(2)}")
Best parameters model for RIAU: (0, 1, 0)
with the lowest MAPE: 12.32%
with the lowest MAE: 194291.8

Make prediction vs actual plot for RIAU¶

In [48]:
plot_predictions_vs_actual(prediction_series=prediction_riau, actual_series=test_riau)
No description has been provided for this image

JAMBI (5)¶

Split JAMBI dataset¶

In [49]:
train_jambi = training_data["JAMBI"]
test_jambi = test_data["JAMBI"]

Make prediction for JAMBI¶

In [50]:
best_param_jambi, lowest_mape_jambi, lowest_mae_jambi, prediction_jambi = make_arima_prediction(train_jambi, test_jambi)

all_provinces_predictions['JAMBI'] = prediction_jambi
ARIMA(0, 0, 0)
MAPE: 47.03%
MAE: 328045.31
==================================================
ARIMA(0, 0, 1)
MAPE: 42.94%
MAE: 299989.22
==================================================
ARIMA(0, 0, 2)
MAPE: 40.26%
MAE: 283516.28
==================================================
ARIMA(0, 0, 3)
MAPE: 35.99%
MAE: 255955.44
==================================================
ARIMA(0, 0, 4)
MAPE: 26.71%
MAE: 191978.54
==================================================
ARIMA(0, 1, 0)
MAPE: 11.05%
MAE: 85274.4
==================================================
ARIMA(0, 1, 1)
MAPE: 20.69%
MAE: 150838.63
==================================================
ARIMA(0, 1, 2)
MAPE: 21.47%
MAE: 156082.49
==================================================
ARIMA(0, 1, 3)
MAPE: 24.61%
MAE: 177990.19
==================================================
ARIMA(0, 1, 4)
MAPE: 25.08%
MAE: 181999.47
==================================================
ARIMA(1, 0, 0)
MAPE: 17.98%
MAE: 130628.22
==================================================
ARIMA(1, 0, 1)
MAPE: 19.96%
MAE: 143301.52
==================================================
ARIMA(1, 0, 2)
MAPE: 16.1%
MAE: 117300.27
==================================================
ARIMA(1, 0, 3)
MAPE: 11.94%
MAE: 89002.07
==================================================
ARIMA(1, 0, 4)
MAPE: 11.03%
MAE: 82970.23
==================================================
ARIMA(1, 1, 0)
MAPE: 17.99%
MAE: 132648.46
==================================================
ARIMA(1, 1, 1)
MAPE: 24.7%
MAE: 178177.06
==================================================
ARIMA(1, 1, 2)
MAPE: 29.9%
MAE: 213710.59
==================================================
ARIMA(1, 1, 3)
MAPE: 25.07%
MAE: 181536.06
==================================================
ARIMA(1, 1, 4)
MAPE: 24.22%
MAE: 176380.86
==================================================
ARIMA(2, 0, 0)
MAPE: 19.71%
MAE: 141607.27
==================================================
ARIMA(2, 0, 1)
MAPE: 19.63%
MAE: 141081.98
==================================================
ARIMA(2, 0, 2)
MAPE: 14.06%
MAE: 103339.1
==================================================
ARIMA(2, 0, 3)
MAPE: 12.21%
MAE: 91031.6
==================================================
ARIMA(2, 0, 4)
MAPE: 9.94%
MAE: 75176.5
==================================================
ARIMA(2, 1, 0)
MAPE: 18.3%
MAE: 134717.57
==================================================
ARIMA(2, 1, 1)
MAPE: 29.92%
MAE: 213944.0
==================================================
ARIMA(2, 1, 2)
MAPE: 30.07%
MAE: 215081.54
==================================================
ARIMA(2, 1, 3)
MAPE: 25.57%
MAE: 184745.06
==================================================
ARIMA(2, 1, 4)
MAPE: 24.2%
MAE: 176209.73
==================================================
ARIMA(3, 0, 0)
MAPE: 19.46%
MAE: 139954.68
==================================================
ARIMA(3, 0, 1)
MAPE: 20.03%
MAE: 143922.89
==================================================
ARIMA(3, 0, 2)
MAPE: 17.72%
MAE: 129305.12
==================================================
ARIMA(3, 0, 3)
MAPE: 13.08%
MAE: 97665.85
==================================================
ARIMA(3, 0, 4)
MAPE: 13.55%
MAE: 100876.18
==================================================
ARIMA(3, 1, 0)
MAPE: 20.44%
MAE: 149103.02
==================================================
ARIMA(3, 1, 1)
MAPE: 24.68%
MAE: 178530.36
==================================================
ARIMA(3, 1, 2)
MAPE: 22.01%
MAE: 160033.21
==================================================
ARIMA(3, 1, 3)
MAPE: 31.47%
MAE: 225358.52
==================================================
ARIMA(3, 1, 4)
MAPE: 30.94%
MAE: 221969.85
==================================================
ARIMA(4, 0, 0)
MAPE: 15.84%
MAE: 115942.76
==================================================
ARIMA(4, 0, 1)
MAPE: 15.72%
MAE: 115080.03
==================================================
ARIMA(4, 0, 2)
MAPE: 18.62%
MAE: 135145.59
==================================================
ARIMA(4, 0, 3)
MAPE: 11.91%
MAE: 89486.09
==================================================
ARIMA(4, 0, 4)
MAPE: 12.36%
MAE: 92793.38
==================================================
ARIMA(4, 1, 0)
MAPE: 24.73%
MAE: 179789.28
==================================================
ARIMA(4, 1, 1)
MAPE: 23.17%
MAE: 168944.69
==================================================
ARIMA(4, 1, 2)
MAPE: 23.77%
MAE: 172974.45
==================================================
ARIMA(4, 1, 3)
MAPE: 22.66%
MAE: 165288.2
==================================================
ARIMA(4, 1, 4)
MAPE: 22.55%
MAE: 164614.6
==================================================

Best parameter, lowest MAPE, and lowest MAE for JAMBI¶

In [51]:
print(f"Best parameters model for JAMBI:", best_param_jambi)
print(f"with the lowest MAPE: {lowest_mape_jambi.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_jambi.round(2)}")
Best parameters model for JAMBI: (2, 0, 4)
with the lowest MAPE: 9.94%
with the lowest MAE: 75176.5

Make prediction vs actual plot for JAMBI¶

In [52]:
plot_predictions_vs_actual(prediction_series=prediction_jambi, actual_series=test_jambi)
No description has been provided for this image

SUMATERA SELATAN (6)¶

Split SUMATERA SELATAN dataset¶

In [53]:
train_sumatera_selatan = training_data["SUMATERA SELATAN"]
test_sumatera_selatan = test_data["SUMATERA SELATAN"]

Make prediction for SUMATERA SELATAN¶

In [54]:
best_param_sumatera_selatan, lowest_mape_sumatera_selatan, lowest_mae_sumatera_selatan, prediction_sumatera_selatan = make_arima_prediction(train_sumatera_selatan, test_sumatera_selatan)

all_provinces_predictions['SUMATERA SELATAN'] = prediction_sumatera_selatan
ARIMA(0, 0, 0)
MAPE: 44.74%
MAE: 652334.21
==================================================
ARIMA(0, 0, 1)
MAPE: 40.39%
MAE: 589221.33
==================================================
ARIMA(0, 0, 2)
MAPE: 36.49%
MAE: 537119.78
==================================================
ARIMA(0, 0, 3)
MAPE: 32.39%
MAE: 481381.97
==================================================
ARIMA(0, 0, 4)
MAPE: 28.48%
MAE: 420292.05
==================================================
ARIMA(0, 1, 0)
MAPE: 8.02%
MAE: 131300.34
==================================================
ARIMA(0, 1, 1)
MAPE: 20.94%
MAE: 318110.89
==================================================
ARIMA(0, 1, 2)
MAPE: 19.82%
MAE: 302467.12
==================================================
ARIMA(0, 1, 3)
MAPE: 22.69%
MAE: 344032.37
==================================================
ARIMA(0, 1, 4)
MAPE: 22.88%
MAE: 347115.16
==================================================
ARIMA(1, 0, 0)
MAPE: 16.92%
MAE: 256973.19
==================================================
ARIMA(1, 0, 1)
MAPE: 18.3%
MAE: 275829.5
==================================================
ARIMA(1, 0, 2)
MAPE: 14.85%
MAE: 227743.8
==================================================
ARIMA(1, 0, 3)
MAPE: 14.94%
MAE: 228968.51
==================================================
ARIMA(1, 0, 4)
MAPE: 13.96%
MAE: 215199.12
==================================================
ARIMA(1, 1, 0)
MAPE: 16.67%
MAE: 258079.08
==================================================
ARIMA(1, 1, 1)
MAPE: 17.83%
MAE: 274529.08
==================================================
ARIMA(1, 1, 2)
MAPE: 19.01%
MAE: 291025.55
==================================================
ARIMA(1, 1, 3)
MAPE: 23.0%
MAE: 348718.71
==================================================
ARIMA(1, 1, 4)
MAPE: 28.98%
MAE: 432597.44
==================================================
ARIMA(2, 0, 0)
MAPE: 18.2%
MAE: 274102.92
==================================================
ARIMA(2, 0, 1)
MAPE: 17.97%
MAE: 270666.7
==================================================
ARIMA(2, 0, 2)
MAPE: 15.18%
MAE: 232534.91
==================================================
ARIMA(2, 0, 3)
MAPE: 14.34%
MAE: 220824.81
==================================================
ARIMA(2, 0, 4)
MAPE: 13.65%
MAE: 210385.9
==================================================
ARIMA(2, 1, 0)
MAPE: 17.31%
MAE: 267189.99
==================================================
ARIMA(2, 1, 1)
MAPE: 28.55%
MAE: 425859.61
==================================================
ARIMA(2, 1, 2)
MAPE: 29.13%
MAE: 433939.54
==================================================
ARIMA(2, 1, 3)
MAPE: 23.66%
MAE: 357634.82
==================================================
ARIMA(2, 1, 4)
MAPE: 28.97%
MAE: 432577.96
==================================================
ARIMA(3, 0, 0)
MAPE: 17.57%
MAE: 264907.2
==================================================
ARIMA(3, 0, 1)
MAPE: 16.89%
MAE: 255379.41
==================================================
ARIMA(3, 0, 2)
MAPE: 15.26%
MAE: 233914.36
==================================================
ARIMA(3, 0, 3)
MAPE: 14.97%
MAE: 229899.39
==================================================
ARIMA(3, 0, 4)
MAPE: 11.65%
MAE: 179952.04
==================================================
ARIMA(3, 1, 0)
MAPE: 18.61%
MAE: 285101.07
==================================================
ARIMA(3, 1, 1)
MAPE: 28.77%
MAE: 428917.91
==================================================
ARIMA(3, 1, 2)
MAPE: 27.76%
MAE: 415889.86
==================================================
ARIMA(3, 1, 3)
MAPE: 28.42%
MAE: 425030.71
==================================================
ARIMA(3, 1, 4)
MAPE: 29.34%
MAE: 438051.36
==================================================
ARIMA(4, 0, 0)
MAPE: 16.44%
MAE: 250792.78
==================================================
ARIMA(4, 0, 1)
MAPE: 16.46%
MAE: 250953.82
==================================================
ARIMA(4, 0, 2)
MAPE: 15.79%
MAE: 240258.87
==================================================
ARIMA(4, 0, 3)
MAPE: 14.99%
MAE: 230350.43
==================================================
ARIMA(4, 0, 4)
MAPE: 11.81%
MAE: 185637.29
==================================================
ARIMA(4, 1, 0)
MAPE: 21.23%
MAE: 324782.95
==================================================
ARIMA(4, 1, 1)
MAPE: 19.89%
MAE: 305066.76
==================================================
ARIMA(4, 1, 2)
MAPE: 28.21%
MAE: 422457.33
==================================================
ARIMA(4, 1, 3)
MAPE: 28.21%
MAE: 422513.36
==================================================
ARIMA(4, 1, 4)
MAPE: 29.56%
MAE: 441857.03
==================================================

Best parameter, lowest MAPE, and lowest MAE for SUMATERA SELATAN¶

In [55]:
print(f"Best parameters model for SUMATERA SELATAN:", best_param_sumatera_selatan)
print(f"with the lowest MAPE: {lowest_mape_sumatera_selatan.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_sumatera_selatan.round(2)}")
Best parameters model for SUMATERA SELATAN: (0, 1, 0)
with the lowest MAPE: 8.02%
with the lowest MAE: 131300.34

Make prediction vs actual plot for SUMATERA SELATAN¶

In [56]:
plot_predictions_vs_actual(prediction_series=prediction_sumatera_selatan, actual_series=test_sumatera_selatan)
No description has been provided for this image

BENGKULU (7)¶

Split BENGKULU dataset¶

In [57]:
train_bengkulu = training_data["BENGKULU"] 
test_bengkulu = test_data["BENGKULU"]

Make prediction for BENGKULU¶

In [58]:
best_param_bengkulu, lowest_mape_bengkulu, lowest_mae_bengkulu, prediction_bengkulu = make_arima_prediction(train_bengkulu, test_bengkulu)

all_provinces_predictions['BENGKULU'] = prediction_bengkulu
ARIMA(0, 0, 0)
MAPE: 40.26%
MAE: 149246.47
==================================================
ARIMA(0, 0, 1)
MAPE: 37.81%
MAE: 139653.37
==================================================
ARIMA(0, 0, 2)
MAPE: 39.3%
MAE: 142871.88
==================================================
ARIMA(0, 0, 3)
MAPE: 37.07%
MAE: 135628.67
==================================================
ARIMA(0, 0, 4)
MAPE: 42.27%
MAE: 145846.73
==================================================
ARIMA(0, 1, 0)
MAPE: 94.69%
MAE: 321690.73
==================================================
ARIMA(0, 1, 1)
MAPE: 38.84%
MAE: 126722.56
==================================================
ARIMA(0, 1, 2)
MAPE: 42.66%
MAE: 139991.77
==================================================
ARIMA(0, 1, 3)
MAPE: 37.43%
MAE: 122784.35
==================================================
ARIMA(0, 1, 4)
MAPE: 37.51%
MAE: 123271.65
==================================================
ARIMA(1, 0, 0)
MAPE: 33.13%
MAE: 111688.86
==================================================
ARIMA(1, 0, 1)
MAPE: 25.21%
MAE: 84598.44
==================================================
ARIMA(1, 0, 2)
MAPE: 32.4%
MAE: 103630.54
==================================================
ARIMA(1, 0, 3)
MAPE: 31.8%
MAE: 101920.43
==================================================
ARIMA(1, 0, 4)
MAPE: 32.89%
MAE: 106286.9
==================================================
ARIMA(1, 1, 0)
MAPE: 55.71%
MAE: 185291.93
==================================================
ARIMA(1, 1, 1)
MAPE: 45.13%
MAE: 148491.63
==================================================
ARIMA(1, 1, 2)
MAPE: 43.71%
MAE: 143546.44
==================================================
ARIMA(1, 1, 3)
MAPE: 37.33%
MAE: 122550.89
==================================================
ARIMA(1, 1, 4)
MAPE: 42.28%
MAE: 140297.79
==================================================
ARIMA(2, 0, 0)
MAPE: 26.78%
MAE: 87760.24
==================================================
ARIMA(2, 0, 1)
MAPE: 26.17%
MAE: 85969.1
==================================================
ARIMA(2, 0, 2)
MAPE: 32.28%
MAE: 103297.16
==================================================
ARIMA(2, 0, 3)
MAPE: 33.45%
MAE: 107258.65
==================================================
ARIMA(2, 0, 4)
MAPE: 33.56%
MAE: 108499.5
==================================================
ARIMA(2, 1, 0)
MAPE: 49.2%
MAE: 162558.7
==================================================
ARIMA(2, 1, 1)
MAPE: 53.58%
MAE: 176002.55
==================================================
ARIMA(2, 1, 2)
MAPE: 31.33%
MAE: 102999.0
==================================================
ARIMA(2, 1, 3)
MAPE: 42.63%
MAE: 139241.73
==================================================
ARIMA(2, 1, 4)
MAPE: 44.08%
MAE: 144142.75
==================================================
ARIMA(3, 0, 0)
MAPE: 26.02%
MAE: 85578.29
==================================================
ARIMA(3, 0, 1)
MAPE: 26.21%
MAE: 86940.05
==================================================
ARIMA(3, 0, 2)
MAPE: 40.11%
MAE: 133813.43
==================================================
ARIMA(3, 0, 3)
MAPE: 34.08%
MAE: 113912.13
==================================================
ARIMA(3, 0, 4)
MAPE: 34.65%
MAE: 115965.01
==================================================
ARIMA(3, 1, 0)
MAPE: 48.48%
MAE: 160118.17
==================================================
ARIMA(3, 1, 1)
MAPE: 31.04%
MAE: 102122.29
==================================================
ARIMA(3, 1, 2)
MAPE: 33.73%
MAE: 111867.45
==================================================
ARIMA(3, 1, 3)
MAPE: 33.81%
MAE: 112501.96
==================================================
ARIMA(3, 1, 4)
MAPE: 39.57%
MAE: 130679.12
==================================================
ARIMA(4, 0, 0)
MAPE: 35.08%
MAE: 113702.74
==================================================
ARIMA(4, 0, 1)
MAPE: 34.83%
MAE: 113468.08
==================================================
ARIMA(4, 0, 2)
MAPE: 37.49%
MAE: 125213.3
==================================================
ARIMA(4, 0, 3)
MAPE: 37.33%
MAE: 124997.09
==================================================
ARIMA(4, 0, 4)
MAPE: 24.55%
MAE: 83423.9
==================================================
ARIMA(4, 1, 0)
MAPE: 40.19%
MAE: 133910.13
==================================================
ARIMA(4, 1, 1)
MAPE: 42.53%
MAE: 140781.49
==================================================
ARIMA(4, 1, 2)
MAPE: 37.99%
MAE: 124991.37
==================================================
ARIMA(4, 1, 3)
MAPE: 34.46%
MAE: 114212.08
==================================================
ARIMA(4, 1, 4)
MAPE: 55.06%
MAE: 182197.07
==================================================

Best parameter, lowest MAPE, and lowest MAE for BENGKULU¶

In [59]:
print(f"Best parameters model for BENGKULU:", best_param_bengkulu)
print(f"with the lowest MAPE: {lowest_mape_bengkulu.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_bengkulu.round(2)}")
Best parameters model for BENGKULU: (4, 0, 4)
with the lowest MAPE: 24.55%
with the lowest MAE: 83423.9

Make prediction vs actual plot for BENGKULU¶

In [60]:
plot_predictions_vs_actual(prediction_series=prediction_bengkulu, actual_series=test_bengkulu)
No description has been provided for this image

LAMPUNG (8)¶

Split LAMPUNG dataset¶

In [61]:
train_lampung = training_data["LAMPUNG"]
test_lampung = test_data["LAMPUNG"]

Make prediction for LAMPUNG¶

In [62]:
best_param_lampung, lowest_mape_lampung, lowest_mae_lampung, prediction_lampung = make_arima_prediction(train_lampung, test_lampung)

all_provinces_predictions['LAMPUNG'] = prediction_lampung
ARIMA(0, 0, 0)
MAPE: 32.95%
MAE: 509844.9
==================================================
ARIMA(0, 0, 1)
MAPE: 29.31%
MAE: 449931.28
==================================================
ARIMA(0, 0, 2)
MAPE: 26.04%
MAE: 404506.25
==================================================
ARIMA(0, 0, 3)
MAPE: 21.64%
MAE: 340072.98
==================================================
ARIMA(0, 0, 4)
MAPE: 17.25%
MAE: 272934.41
==================================================
ARIMA(0, 1, 0)
MAPE: 10.66%
MAE: 153071.64
==================================================
ARIMA(0, 1, 1)
MAPE: 18.24%
MAE: 293590.75
==================================================
ARIMA(0, 1, 2)
MAPE: 19.87%
MAE: 317328.62
==================================================
ARIMA(0, 1, 3)
MAPE: 20.39%
MAE: 327173.74
==================================================
ARIMA(0, 1, 4)
MAPE: 20.5%
MAE: 329085.1
==================================================
ARIMA(1, 0, 0)
MAPE: 15.77%
MAE: 247959.83
==================================================
ARIMA(1, 0, 1)
MAPE: 12.17%
MAE: 191755.24
==================================================
ARIMA(1, 0, 2)
MAPE: 10.53%
MAE: 169207.69
==================================================
ARIMA(1, 0, 3)
MAPE: 10.42%
MAE: 166363.08
==================================================
ARIMA(1, 0, 4)
MAPE: 8.54%
MAE: 138459.95
==================================================
ARIMA(1, 1, 0)
MAPE: 13.83%
MAE: 217837.19
==================================================
ARIMA(1, 1, 1)
MAPE: 20.05%
MAE: 320414.31
==================================================
ARIMA(1, 1, 2)
MAPE: 26.26%
MAE: 415202.5
==================================================
ARIMA(1, 1, 3)
MAPE: 20.39%
MAE: 327238.01
==================================================
ARIMA(1, 1, 4)
MAPE: 19.78%
MAE: 319683.14
==================================================
ARIMA(2, 0, 0)
MAPE: 11.71%
MAE: 185857.36
==================================================
ARIMA(2, 0, 1)
MAPE: 11.83%
MAE: 187603.23
==================================================
ARIMA(2, 0, 2)
MAPE: 10.68%
MAE: 171074.34
==================================================
ARIMA(2, 0, 3)
MAPE: 9.96%
MAE: 160171.83
==================================================
ARIMA(2, 0, 4)
MAPE: 8.43%
MAE: 136799.21
==================================================
ARIMA(2, 1, 0)
MAPE: 14.1%
MAE: 225531.0
==================================================
ARIMA(2, 1, 1)
MAPE: 26.41%
MAE: 418080.45
==================================================
ARIMA(2, 1, 2)
MAPE: 27.08%
MAE: 428257.54
==================================================
ARIMA(2, 1, 3)
MAPE: 25.5%
MAE: 403811.78
==================================================
ARIMA(2, 1, 4)
MAPE: 19.63%
MAE: 316848.74
==================================================
ARIMA(3, 0, 0)
MAPE: 11.78%
MAE: 186884.13
==================================================
ARIMA(3, 0, 1)
MAPE: 11.8%
MAE: 187633.86
==================================================
ARIMA(3, 0, 2)
MAPE: 10.5%
MAE: 169441.06
==================================================
ARIMA(3, 0, 3)
MAPE: 10.99%
MAE: 173642.38
==================================================
ARIMA(3, 0, 4)
MAPE: 8.73%
MAE: 137343.94
==================================================
ARIMA(3, 1, 0)
MAPE: 14.66%
MAE: 238549.35
==================================================
ARIMA(3, 1, 1)
MAPE: 19.6%
MAE: 314755.57
==================================================
ARIMA(3, 1, 2)
MAPE: 19.43%
MAE: 312391.87
==================================================
ARIMA(3, 1, 3)
MAPE: 26.06%
MAE: 413526.08
==================================================
ARIMA(3, 1, 4)
MAPE: 26.22%
MAE: 415725.52
==================================================
ARIMA(4, 0, 0)
MAPE: 11.4%
MAE: 182497.2
==================================================
ARIMA(4, 0, 1)
MAPE: 11.39%
MAE: 182467.92
==================================================
ARIMA(4, 0, 2)
MAPE: 10.52%
MAE: 166593.65
==================================================
ARIMA(4, 0, 3)
MAPE: 9.87%
MAE: 157493.45
==================================================
ARIMA(4, 0, 4)
MAPE: 9.09%
MAE: 143889.73
==================================================
ARIMA(4, 1, 0)
MAPE: 19.52%
MAE: 313966.02
==================================================
ARIMA(4, 1, 1)
MAPE: 18.39%
MAE: 297545.87
==================================================
ARIMA(4, 1, 2)
MAPE: 18.62%
MAE: 300854.72
==================================================
ARIMA(4, 1, 3)
MAPE: 24.98%
MAE: 396910.44
==================================================
ARIMA(4, 1, 4)
MAPE: 23.23%
MAE: 370247.61
==================================================

Best parameter and lowest MAPE for BENGKULU¶

In [63]:
print(f"Best parameters model for LAMPUNG:", best_param_lampung)
print(f"with the lowest MAPE: {lowest_mape_lampung.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_lampung.round(2)}")
Best parameters model for LAMPUNG: (2, 0, 4)
with the lowest MAPE: 8.43%
with the lowest MAE: 136799.21

Make prediction vs actual plot for BENGKULU¶

In [64]:
plot_predictions_vs_actual(prediction_series=prediction_lampung, actual_series=test_lampung)
No description has been provided for this image

KEP. BANGKA BELITUNG (9)¶

Split KEP. BANGKA BELITUNG dataset¶

In [65]:
train_kep_bangka_belitung = training_data["KEP. BANGKA BELITUNG"]
test_kep_bangka_belitung = test_data["KEP. BANGKA BELITUNG"]

Make prediction for KEP. BANGKA BELITUNG¶

In [66]:
best_param_kep_bangka_belitung, lowest_mape_kep_bangka_belitung, lowest_mae_kep_bangka_belitung, prediction_kep_bangka_belitung = make_arima_prediction(train_kep_bangka_belitung, test_kep_bangka_belitung)

all_provinces_predictions['KEP. BANGKA BELITUNG'] = prediction_kep_bangka_belitung
ARIMA(0, 0, 0)
MAPE: 41.76%
MAE: 104457.25
==================================================
ARIMA(0, 0, 1)
MAPE: 37.51%
MAE: 93806.21
==================================================
ARIMA(0, 0, 2)
MAPE: 34.98%
MAE: 87499.27
==================================================
ARIMA(0, 0, 3)
MAPE: 27.72%
MAE: 70045.32
==================================================
ARIMA(0, 0, 4)
MAPE: 32.43%
MAE: 78354.06
==================================================
ARIMA(0, 1, 0)
MAPE: 62.56%
MAE: 151469.01
==================================================
ARIMA(0, 1, 1)
MAPE: 31.19%
MAE: 74478.23
==================================================
ARIMA(0, 1, 2)
MAPE: 21.67%
MAE: 51520.62
==================================================
ARIMA(0, 1, 3)
MAPE: 24.01%
MAE: 57635.07
==================================================
ARIMA(0, 1, 4)
MAPE: 27.58%
MAE: 66081.03
==================================================
ARIMA(1, 0, 0)
MAPE: 30.92%
MAE: 74126.02
==================================================
ARIMA(1, 0, 1)
MAPE: 22.47%
MAE: 53390.07
==================================================
ARIMA(1, 0, 2)
MAPE: 28.55%
MAE: 68058.06
==================================================
ARIMA(1, 0, 3)
MAPE: 23.16%
MAE: 54970.5
==================================================
ARIMA(1, 0, 4)
MAPE: 25.69%
MAE: 60560.11
==================================================
ARIMA(1, 1, 0)
MAPE: 39.25%
MAE: 94212.66
==================================================
ARIMA(1, 1, 1)
MAPE: 40.44%
MAE: 97139.09
==================================================
ARIMA(1, 1, 2)
MAPE: 20.98%
MAE: 50338.47
==================================================
ARIMA(1, 1, 3)
MAPE: 25.58%
MAE: 61306.86
==================================================
ARIMA(1, 1, 4)
MAPE: 31.37%
MAE: 75747.11
==================================================
ARIMA(2, 0, 0)
MAPE: 22.94%
MAE: 54488.31
==================================================
ARIMA(2, 0, 1)
MAPE: 23.47%
MAE: 55863.26
==================================================
ARIMA(2, 0, 2)
MAPE: 26.95%
MAE: 64187.32
==================================================
ARIMA(2, 0, 3)
MAPE: 23.78%
MAE: 56253.19
==================================================
ARIMA(2, 0, 4)
MAPE: 33.48%
MAE: 78769.25
==================================================
ARIMA(2, 1, 0)
MAPE: 39.74%
MAE: 95409.86
==================================================
ARIMA(2, 1, 1)
MAPE: 21.1%
MAE: 50472.65
==================================================
ARIMA(2, 1, 2)
MAPE: 21.38%
MAE: 51096.63
==================================================
ARIMA(2, 1, 3)
MAPE: 26.32%
MAE: 63731.91
==================================================
ARIMA(2, 1, 4)
MAPE: 30.91%
MAE: 74841.15
==================================================
ARIMA(3, 0, 0)
MAPE: 24.16%
MAE: 57562.59
==================================================
ARIMA(3, 0, 1)
MAPE: 24.19%
MAE: 57622.93
==================================================
ARIMA(3, 0, 2)
MAPE: 31.43%
MAE: 74624.08
==================================================
ARIMA(3, 0, 3)
MAPE: 27.04%
MAE: 64344.07
==================================================
ARIMA(3, 0, 4)
MAPE: 28.0%
MAE: 66752.51
==================================================
ARIMA(3, 1, 0)
MAPE: 34.36%
MAE: 82413.29
==================================================
ARIMA(3, 1, 1)
MAPE: 22.28%
MAE: 53863.07
==================================================
ARIMA(3, 1, 2)
MAPE: 23.7%
MAE: 56581.38
==================================================
ARIMA(3, 1, 3)
MAPE: 24.2%
MAE: 58834.84
==================================================
ARIMA(3, 1, 4)
MAPE: 30.87%
MAE: 75059.42
==================================================
ARIMA(4, 0, 0)
MAPE: 24.76%
MAE: 58813.38
==================================================
ARIMA(4, 0, 1)
MAPE: 25.35%
MAE: 59985.45
==================================================
ARIMA(4, 0, 2)
MAPE: 28.0%
MAE: 66451.74
==================================================
ARIMA(4, 0, 3)
MAPE: 26.66%
MAE: 63830.19
==================================================
ARIMA(4, 0, 4)
MAPE: 26.69%
MAE: 63510.16
==================================================
ARIMA(4, 1, 0)
MAPE: 27.7%
MAE: 67585.63
==================================================
ARIMA(4, 1, 1)
MAPE: 28.13%
MAE: 68590.58
==================================================
ARIMA(4, 1, 2)
MAPE: 25.94%
MAE: 63514.88
==================================================
ARIMA(4, 1, 3)
MAPE: 27.13%
MAE: 66047.17
==================================================
ARIMA(4, 1, 4)
MAPE: 29.16%
MAE: 69514.84
==================================================

Best parameter, lowest MAPE, and lowest MAE for KEP. BANGKA BELITUNG¶

In [67]:
print(f"Best parameters model for KEP. BANGKA BELITUNG:", best_param_kep_bangka_belitung)
print(f"with the lowest MAPE: {lowest_mape_kep_bangka_belitung.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_kep_bangka_belitung.round(2)}")
Best parameters model for KEP. BANGKA BELITUNG: (1, 1, 2)
with the lowest MAPE: 20.98%
with the lowest MAE: 50338.47

Make prediction vs actual plot for KEP. BANGKE BELITUNG¶

In [68]:
plot_predictions_vs_actual(prediction_series=prediction_kep_bangka_belitung, actual_series=test_kep_bangka_belitung)
No description has been provided for this image

KEP. RIAU (10)¶

Split KEP. RIAU dataset¶

In [69]:
train_kep_riau = training_data["KEP. RIAU"]
test_kep_riau = test_data["KEP. RIAU"]

Make prediction for KEP. RIAU¶

In [70]:
best_param_kep_riau, lowest_mape_kep_riau, lowest_mae_kep_riau, prediction_kep_riau = make_arima_prediction(train_kep_riau, test_kep_riau)

all_provinces_predictions['KEP. RIAU'] = prediction_kep_riau
ARIMA(0, 0, 0)
MAPE: 44.38%
MAE: 126939.1
==================================================
ARIMA(0, 0, 1)
MAPE: 37.92%
MAE: 108630.4
==================================================
ARIMA(0, 0, 2)
MAPE: 34.67%
MAE: 99564.26
==================================================
ARIMA(0, 0, 3)
MAPE: 27.0%
MAE: 78376.86
==================================================
ARIMA(0, 0, 4)
MAPE: 24.73%
MAE: 71582.92
==================================================
ARIMA(0, 1, 0)
MAPE: 6.31%
MAE: 17842.21
==================================================
ARIMA(0, 1, 1)
MAPE: 9.03%
MAE: 27465.3
==================================================
ARIMA(0, 1, 2)
MAPE: 11.03%
MAE: 32998.12
==================================================
ARIMA(0, 1, 3)
MAPE: 11.78%
MAE: 35010.6
==================================================
ARIMA(0, 1, 4)
MAPE: 11.79%
MAE: 35021.46
==================================================
ARIMA(1, 0, 0)
MAPE: 11.45%
MAE: 34157.42
==================================================
ARIMA(1, 0, 1)
MAPE: 13.15%
MAE: 39104.48
==================================================
ARIMA(1, 0, 2)
MAPE: 13.36%
MAE: 39653.56
==================================================
ARIMA(1, 0, 3)
MAPE: 13.39%
MAE: 39557.76
==================================================
ARIMA(1, 0, 4)
MAPE: 12.3%
MAE: 35904.68
==================================================
ARIMA(1, 1, 0)
MAPE: 7.43%
MAE: 22509.18
==================================================
ARIMA(1, 1, 1)
MAPE: 11.23%
MAE: 33551.98
==================================================
ARIMA(1, 1, 2)
MAPE: 11.28%
MAE: 33682.45
==================================================
ARIMA(1, 1, 3)
MAPE: 11.78%
MAE: 35012.31
==================================================
ARIMA(1, 1, 4)
MAPE: 11.48%
MAE: 34404.71
==================================================
ARIMA(2, 0, 0)
MAPE: 12.93%
MAE: 38430.24
==================================================
ARIMA(2, 0, 1)
MAPE: 13.44%
MAE: 39962.41
==================================================
ARIMA(2, 0, 2)
MAPE: 13.15%
MAE: 39015.38
==================================================
ARIMA(2, 0, 3)
MAPE: 15.46%
MAE: 46252.86
==================================================
ARIMA(2, 0, 4)
MAPE: 12.42%
MAE: 36478.13
==================================================
ARIMA(2, 1, 0)
MAPE: 8.58%
MAE: 26129.07
==================================================
ARIMA(2, 1, 1)
MAPE: 11.23%
MAE: 33560.79
==================================================
ARIMA(2, 1, 2)
MAPE: 11.07%
MAE: 32184.28
==================================================
ARIMA(2, 1, 3)
MAPE: 10.75%
MAE: 32633.3
==================================================
ARIMA(2, 1, 4)
MAPE: 13.69%
MAE: 40837.45
==================================================
ARIMA(3, 0, 0)
MAPE: 13.0%
MAE: 38651.86
==================================================
ARIMA(3, 0, 1)
MAPE: 12.95%
MAE: 38566.79
==================================================
ARIMA(3, 0, 2)
MAPE: 12.93%
MAE: 38816.92
==================================================
ARIMA(3, 0, 3)
MAPE: 12.28%
MAE: 36820.61
==================================================
ARIMA(3, 0, 4)
MAPE: 13.83%
MAE: 40715.58
==================================================
ARIMA(3, 1, 0)
MAPE: 10.84%
MAE: 32449.14
==================================================
ARIMA(3, 1, 1)
MAPE: 12.25%
MAE: 36416.02
==================================================
ARIMA(3, 1, 2)
MAPE: 13.97%
MAE: 41650.8
==================================================
ARIMA(3, 1, 3)
MAPE: 10.87%
MAE: 33046.13
==================================================
ARIMA(3, 1, 4)
MAPE: 10.37%
MAE: 31193.57
==================================================
ARIMA(4, 0, 0)
MAPE: 13.5%
MAE: 40078.47
==================================================
ARIMA(4, 0, 1)
MAPE: 12.89%
MAE: 38406.6
==================================================
ARIMA(4, 0, 2)
MAPE: 12.5%
MAE: 37582.67
==================================================
ARIMA(4, 0, 3)
MAPE: 12.4%
MAE: 37168.1
==================================================
ARIMA(4, 0, 4)
MAPE: 18.55%
MAE: 53256.55
==================================================
ARIMA(4, 1, 0)
MAPE: 14.79%
MAE: 43722.5
==================================================
ARIMA(4, 1, 1)
MAPE: 14.37%
MAE: 42614.14
==================================================
ARIMA(4, 1, 2)
MAPE: 11.32%
MAE: 34280.23
==================================================
ARIMA(4, 1, 3)
MAPE: 11.12%
MAE: 33699.02
==================================================
ARIMA(4, 1, 4)
MAPE: 14.42%
MAE: 42672.89
==================================================

Best parameter, lowest MAPE, and lowest MAE for KEP. RIAU¶

In [71]:
print(f"Best parameters model for KEP. RIAU:", best_param_kep_riau)
print(f"with the lowest MAPE: {lowest_mape_kep_riau.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_kep_riau.round(2)}")
Best parameters model for KEP. RIAU: (0, 1, 0)
with the lowest MAPE: 6.31%
with the lowest MAE: 17842.21

Make prediction vs actual plot for KEP. RIAU¶

In [72]:
plot_predictions_vs_actual(prediction_series=prediction_kep_riau, actual_series=test_kep_riau)
No description has been provided for this image

DKI JAKARTA (11)¶

Split DKI JAKARTA dataset¶

In [73]:
train_dki_jakarta = training_data["DKI JAKARTA"]    
test_dki_jakarta = test_data["DKI JAKARTA"]

Make prediction for DKI JAKARTA¶

In [74]:
best_param_dki_jakarta, lowest_mape_dki_jakarta, lowest_mae_dki_jakarta, prediction_dki_jakarta = make_arima_prediction(train_dki_jakarta, test_dki_jakarta)

all_provinces_predictions['DKI JAKARTA'] = prediction_dki_jakarta
ARIMA(0, 0, 0)
MAPE: 36.12%
MAE: 2399869.48
==================================================
ARIMA(0, 0, 1)
MAPE: 31.04%
MAE: 2066425.05
==================================================
ARIMA(0, 0, 2)
MAPE: 28.26%
MAE: 1883664.21
==================================================
ARIMA(0, 0, 3)
MAPE: 24.76%
MAE: 1654287.31
==================================================
ARIMA(0, 0, 4)
MAPE: 23.17%
MAE: 1548727.42
==================================================
ARIMA(0, 1, 0)
MAPE: 13.15%
MAE: 865895.26
==================================================
ARIMA(0, 1, 1)
MAPE: 11.08%
MAE: 729089.45
==================================================
ARIMA(0, 1, 2)
MAPE: 10.09%
MAE: 663060.73
==================================================
ARIMA(0, 1, 3)
MAPE: 11.02%
MAE: 724984.43
==================================================
ARIMA(0, 1, 4)
MAPE: 9.33%
MAE: 612407.18
==================================================
ARIMA(1, 0, 0)
MAPE: 10.23%
MAE: 685770.0
==================================================
ARIMA(1, 0, 1)
MAPE: 13.46%
MAE: 900375.46
==================================================
ARIMA(1, 0, 2)
MAPE: 12.0%
MAE: 803415.75
==================================================
ARIMA(1, 0, 3)
MAPE: 11.46%
MAE: 767443.63
==================================================
ARIMA(1, 0, 4)
MAPE: 11.32%
MAE: 757593.78
==================================================
ARIMA(1, 1, 0)
MAPE: 11.4%
MAE: 750044.34
==================================================
ARIMA(1, 1, 1)
MAPE: 12.61%
MAE: 830045.34
==================================================
ARIMA(1, 1, 2)
MAPE: 9.33%
MAE: 612824.51
==================================================
ARIMA(1, 1, 3)
MAPE: 9.46%
MAE: 621638.13
==================================================
ARIMA(1, 1, 4)
MAPE: 9.17%
MAE: 602460.11
==================================================
ARIMA(2, 0, 0)
MAPE: 12.84%
MAE: 858779.46
==================================================
ARIMA(2, 0, 1)
MAPE: 11.14%
MAE: 746925.98
==================================================
ARIMA(2, 0, 2)
MAPE: 12.61%
MAE: 844144.17
==================================================
ARIMA(2, 0, 3)
MAPE: 11.11%
MAE: 743618.44
==================================================
ARIMA(2, 0, 4)
MAPE: 10.98%
MAE: 734501.49
==================================================
ARIMA(2, 1, 0)
MAPE: 10.19%
MAE: 669985.65
==================================================
ARIMA(2, 1, 1)
MAPE: 9.58%
MAE: 629249.47
==================================================
ARIMA(2, 1, 2)
MAPE: 13.5%
MAE: 890208.2
==================================================
ARIMA(2, 1, 3)
MAPE: 4.79%
MAE: 318142.9
==================================================
ARIMA(2, 1, 4)
MAPE: 4.38%
MAE: 293137.86
==================================================
ARIMA(3, 0, 0)
MAPE: 11.91%
MAE: 797121.05
==================================================
ARIMA(3, 0, 1)
MAPE: 12.43%
MAE: 832167.35
==================================================
ARIMA(3, 0, 2)
MAPE: 15.69%
MAE: 1050002.32
==================================================
ARIMA(3, 0, 3)
MAPE: 10.57%
MAE: 704432.15
==================================================
ARIMA(3, 0, 4)
MAPE: 11.64%
MAE: 779607.26
==================================================
ARIMA(3, 1, 0)
MAPE: 10.98%
MAE: 722209.5
==================================================
ARIMA(3, 1, 1)
MAPE: 9.48%
MAE: 622737.86
==================================================
ARIMA(3, 1, 2)
MAPE: 4.78%
MAE: 317301.36
==================================================
ARIMA(3, 1, 3)
MAPE: 4.66%
MAE: 309652.83
==================================================
ARIMA(3, 1, 4)
MAPE: 5.17%
MAE: 343752.8
==================================================
ARIMA(4, 0, 0)
MAPE: 11.58%
MAE: 774908.08
==================================================
ARIMA(4, 0, 1)
MAPE: 11.4%
MAE: 762531.0
==================================================
ARIMA(4, 0, 2)
MAPE: 11.41%
MAE: 763403.95
==================================================
ARIMA(4, 0, 3)
MAPE: 15.96%
MAE: 1066540.42
==================================================
ARIMA(4, 0, 4)
MAPE: 11.68%
MAE: 782654.69
==================================================
ARIMA(4, 1, 0)
MAPE: 9.74%
MAE: 640154.21
==================================================
ARIMA(4, 1, 1)
MAPE: 9.3%
MAE: 610696.79
==================================================
ARIMA(4, 1, 2)
MAPE: 4.72%
MAE: 313878.09
==================================================
ARIMA(4, 1, 3)
MAPE: 9.45%
MAE: 620643.99
==================================================
ARIMA(4, 1, 4)
MAPE: 13.14%
MAE: 866094.21
==================================================

Best parameter, lowest MAPE, and lowest MAE for DKI JAKARTA¶

In [75]:
print(f"Best parameters model for DKI JAKARTA:", best_param_dki_jakarta)
print(f"with the lowest MAPE: {lowest_mape_dki_jakarta.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_dki_jakarta.round(2)}")
Best parameters model for DKI JAKARTA: (2, 1, 4)
with the lowest MAPE: 4.38%
with the lowest MAE: 293137.86

Make prediction vs actual plot for DKI JAKARTA¶

In [76]:
plot_predictions_vs_actual(prediction_series=prediction_dki_jakarta, actual_series=test_dki_jakarta)
No description has been provided for this image

JAWA BARAT (12)¶

Split JAWA BARAT dataset¶

In [77]:
train_jawa_barat = training_data["JAWA BARAT"]
test_jawa_barat = test_data["JAWA BARAT"]

Make prediction for JAWA BARAT¶

In [78]:
best_param_jawa_barat, lowest_mape_jawa_barat, lowest_mae_jawa_barat, prediction_jawa_barat = make_arima_prediction(train_jawa_barat, test_jawa_barat)

all_provinces_predictions['JAWA BARAT'] = prediction_jawa_barat
ARIMA(0, 0, 0)
MAPE: 23.6%
MAE: 3393660.13
==================================================
ARIMA(0, 0, 1)
MAPE: 19.38%
MAE: 2805755.7
==================================================
ARIMA(0, 0, 2)
MAPE: 16.53%
MAE: 2434434.0
==================================================
ARIMA(0, 0, 3)
MAPE: 15.73%
MAE: 2343647.91
==================================================
ARIMA(0, 0, 4)
MAPE: 15.47%
MAE: 2302806.32
==================================================
ARIMA(0, 1, 0)
MAPE: 25.93%
MAE: 3377274.53
==================================================
ARIMA(0, 1, 1)
MAPE: 17.53%
MAE: 2334559.96
==================================================
ARIMA(0, 1, 2)
MAPE: 18.91%
MAE: 2500380.09
==================================================
ARIMA(0, 1, 3)
MAPE: 15.03%
MAE: 2044894.11
==================================================
ARIMA(0, 1, 4)
MAPE: 14.76%
MAE: 2014915.96
==================================================
ARIMA(1, 0, 0)
MAPE: 13.01%
MAE: 1940535.79
==================================================
ARIMA(1, 0, 1)
MAPE: 10.68%
MAE: 1575721.88
==================================================
ARIMA(1, 0, 2)
MAPE: 14.23%
MAE: 2092775.51
==================================================
ARIMA(1, 0, 3)
MAPE: 11.05%
MAE: 1632694.44
==================================================
ARIMA(1, 0, 4)
MAPE: 11.46%
MAE: 1687277.12
==================================================
ARIMA(1, 1, 0)
MAPE: 19.25%
MAE: 2540488.47
==================================================
ARIMA(1, 1, 1)
MAPE: 19.73%
MAE: 2598614.59
==================================================
ARIMA(1, 1, 2)
MAPE: 19.66%
MAE: 2590104.41
==================================================
ARIMA(1, 1, 3)
MAPE: 14.97%
MAE: 2038684.89
==================================================
ARIMA(1, 1, 4)
MAPE: 13.22%
MAE: 1821549.27
==================================================
ARIMA(2, 0, 0)
MAPE: 10.94%
MAE: 1606904.81
==================================================
ARIMA(2, 0, 1)
MAPE: 11.41%
MAE: 1674778.11
==================================================
ARIMA(2, 0, 2)
MAPE: 13.23%
MAE: 1941834.99
==================================================
ARIMA(2, 0, 3)
MAPE: 11.26%
MAE: 1661738.54
==================================================
ARIMA(2, 0, 4)
MAPE: 11.58%
MAE: 1710345.91
==================================================
ARIMA(2, 1, 0)
MAPE: 19.72%
MAE: 2597951.73
==================================================
ARIMA(2, 1, 1)
MAPE: 19.72%
MAE: 2597633.07
==================================================
ARIMA(2, 1, 2)
MAPE: 11.84%
MAE: 1645706.29
==================================================
ARIMA(2, 1, 3)
MAPE: 18.22%
MAE: 2452228.14
==================================================
ARIMA(2, 1, 4)
MAPE: 15.05%
MAE: 2051404.24
==================================================
ARIMA(3, 0, 0)
MAPE: 11.97%
MAE: 1754615.05
==================================================
ARIMA(3, 0, 1)
MAPE: 11.92%
MAE: 1748081.69
==================================================
ARIMA(3, 0, 2)
MAPE: 14.32%
MAE: 2121161.53
==================================================
ARIMA(3, 0, 3)
MAPE: 10.78%
MAE: 1603954.33
==================================================
ARIMA(3, 0, 4)
MAPE: 10.75%
MAE: 1598456.55
==================================================
ARIMA(3, 1, 0)
MAPE: 18.82%
MAE: 2489027.19
==================================================
ARIMA(3, 1, 1)
MAPE: 12.03%
MAE: 1670271.97
==================================================
ARIMA(3, 1, 2)
MAPE: 20.64%
MAE: 2722078.52
==================================================
ARIMA(3, 1, 3)
MAPE: 12.28%
MAE: 1736340.56
==================================================
ARIMA(3, 1, 4)
MAPE: 12.02%
MAE: 1693290.21
==================================================
ARIMA(4, 0, 0)
MAPE: 11.69%
MAE: 1715085.1
==================================================
ARIMA(4, 0, 1)
MAPE: 12.37%
MAE: 1814242.53
==================================================
ARIMA(4, 0, 2)
MAPE: 11.72%
MAE: 1731619.72
==================================================
ARIMA(4, 0, 3)
MAPE: 10.74%
MAE: 1597751.57
==================================================
ARIMA(4, 0, 4)
MAPE: 11.02%
MAE: 1632545.51
==================================================
ARIMA(4, 1, 0)
MAPE: 15.36%
MAE: 2098474.53
==================================================
ARIMA(4, 1, 1)
MAPE: 14.87%
MAE: 2023779.82
==================================================
ARIMA(4, 1, 2)
MAPE: 15.16%
MAE: 2058138.4
==================================================
ARIMA(4, 1, 3)
MAPE: 18.71%
MAE: 2499548.11
==================================================
ARIMA(4, 1, 4)
MAPE: 19.25%
MAE: 2565195.82
==================================================

Best parameter, lowest MAPE, and lowest MAE for JAWA BARAT¶

In [79]:
print(f"Best parameters model for JAWA BARAT:", best_param_jawa_barat)
print(f"with the lowest MAPE: {lowest_mape_jawa_barat.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_jawa_barat.round(2)}")
Best parameters model for JAWA BARAT: (1, 0, 1)
with the lowest MAPE: 10.68%
with the lowest MAE: 1575721.88

Make prediction vs actual plot for JAWA BARAT¶

In [80]:
plot_predictions_vs_actual(prediction_series=prediction_jawa_barat, actual_series=test_jawa_barat)
No description has been provided for this image

JAWA TENGAH (13)¶

Split JAWA TENGAH dataset¶

In [81]:
train_jawa_tengah = training_data["JAWA TENGAH"]
test_jawa_tengah = test_data["JAWA TENGAH"]

Make prediction for JAWA TENGAH¶

In [82]:
best_param_jawa_tengah, lowest_mape_jawa_tengah, lowest_mae_jawa_tengah, prediction_jawa_tengah = make_arima_prediction(train_jawa_tengah, test_jawa_tengah)

all_provinces_predictions['JAWA TENGAH'] = prediction_jawa_tengah
ARIMA(0, 0, 0)
MAPE: 23.31%
MAE: 3369341.72
==================================================
ARIMA(0, 0, 1)
MAPE: 23.17%
MAE: 3348095.82
==================================================
ARIMA(0, 0, 2)
MAPE: 24.4%
MAE: 3521315.36
==================================================
ARIMA(0, 0, 3)
MAPE: 25.94%
MAE: 3706736.09
==================================================
ARIMA(0, 0, 4)
MAPE: 25.91%
MAE: 3702765.43
==================================================
ARIMA(0, 1, 0)
MAPE: 27.42%
MAE: 3880429.29
==================================================
ARIMA(0, 1, 1)
MAPE: 30.05%
MAE: 4223575.94
==================================================
ARIMA(0, 1, 2)
MAPE: 30.12%
MAE: 4242198.29
==================================================
ARIMA(0, 1, 3)
MAPE: 32.43%
MAE: 4544492.53
==================================================
ARIMA(0, 1, 4)
MAPE: 29.52%
MAE: 4160307.26
==================================================
ARIMA(1, 0, 0)
MAPE: 24.76%
MAE: 3555139.35
==================================================
ARIMA(1, 0, 1)
MAPE: 26.26%
MAE: 3751808.04
==================================================
ARIMA(1, 0, 2)
MAPE: 27.92%
MAE: 3970636.03
==================================================
ARIMA(1, 0, 3)
MAPE: 25.9%
MAE: 3702041.95
==================================================
ARIMA(1, 0, 4)
MAPE: 25.82%
MAE: 3691103.86
==================================================
ARIMA(1, 1, 0)
MAPE: 30.88%
MAE: 4335988.97
==================================================
ARIMA(1, 1, 1)
MAPE: 30.85%
MAE: 4333073.4
==================================================
ARIMA(1, 1, 2)
MAPE: 31.17%
MAE: 4380668.74
==================================================
ARIMA(1, 1, 3)
MAPE: 31.38%
MAE: 4407510.77
==================================================
ARIMA(1, 1, 4)
MAPE: 30.26%
MAE: 4253631.41
==================================================
ARIMA(2, 0, 0)
MAPE: 27.11%
MAE: 3866090.83
==================================================
ARIMA(2, 0, 1)
MAPE: 26.89%
MAE: 3839482.75
==================================================
ARIMA(2, 0, 2)
MAPE: 25.2%
MAE: 3612271.81
==================================================
ARIMA(2, 0, 3)
MAPE: 25.32%
MAE: 3624499.2
==================================================
ARIMA(2, 0, 4)
MAPE: 25.93%
MAE: 3706023.76
==================================================
ARIMA(2, 1, 0)
MAPE: 30.83%
MAE: 4331175.34
==================================================
ARIMA(2, 1, 1)
MAPE: 30.84%
MAE: 4332693.39
==================================================
ARIMA(2, 1, 2)
MAPE: 28.59%
MAE: 4043227.35
==================================================
ARIMA(2, 1, 3)
MAPE: 30.97%
MAE: 4351210.09
==================================================
ARIMA(2, 1, 4)
MAPE: 29.93%
MAE: 4211118.77
==================================================
ARIMA(3, 0, 0)
MAPE: 25.62%
MAE: 3678287.0
==================================================
ARIMA(3, 0, 1)
MAPE: 24.62%
MAE: 3553174.11
==================================================
ARIMA(3, 0, 2)
MAPE: 25.99%
MAE: 3712920.33
==================================================
ARIMA(3, 0, 3)
MAPE: 26.54%
MAE: 3786711.44
==================================================
ARIMA(3, 0, 4)
MAPE: 24.82%
MAE: 3564429.3
==================================================
ARIMA(3, 1, 0)
MAPE: 30.94%
MAE: 4347488.62
==================================================
ARIMA(3, 1, 1)
MAPE: 32.81%
MAE: 4599189.88
==================================================
ARIMA(3, 1, 2)
MAPE: 25.88%
MAE: 3698706.68
==================================================
ARIMA(3, 1, 3)
MAPE: 32.52%
MAE: 4570478.06
==================================================
ARIMA(3, 1, 4)
MAPE: 30.95%
MAE: 4349650.06
==================================================
ARIMA(4, 0, 0)
MAPE: 24.15%
MAE: 3496068.7
==================================================
ARIMA(4, 0, 1)
MAPE: 25.46%
MAE: 3673885.74
==================================================
ARIMA(4, 0, 2)
MAPE: 25.71%
MAE: 3706092.99
==================================================
ARIMA(4, 0, 3)
MAPE: 26.2%
MAE: 3742608.88
==================================================
ARIMA(4, 0, 4)
MAPE: 26.99%
MAE: 3847458.9
==================================================
ARIMA(4, 1, 0)
MAPE: 33.01%
MAE: 4621901.9
==================================================
ARIMA(4, 1, 1)
MAPE: 27.79%
MAE: 3943261.83
==================================================
ARIMA(4, 1, 2)
MAPE: 29.4%
MAE: 4162975.57
==================================================
ARIMA(4, 1, 3)
MAPE: 29.27%
MAE: 4145569.72
==================================================
ARIMA(4, 1, 4)
MAPE: 30.09%
MAE: 4235776.54
==================================================

Best parameter, lowest MAPE, and lowest MAE for JAWA TENGAH¶

In [83]:
print(f"Best parameters model for JAWA TENGAH:", best_param_jawa_tengah)
print(f"with the lowest MAPE: {lowest_mape_jawa_tengah.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_jawa_tengah.round(2)}")
Best parameters model for JAWA TENGAH: (0, 0, 1)
with the lowest MAPE: 23.17%
with the lowest MAE: 3348095.82

Make prediction vs actual plot for JAWA TENGAH¶

In [84]:
plot_predictions_vs_actual(prediction_series=prediction_jawa_tengah, actual_series=test_jawa_tengah)
No description has been provided for this image

DI YOGYAKARTA (14)¶

Split DI YOGYAKARTA dataset¶

In [85]:
train_di_yogyakarta = training_data["DI YOGYAKARTA"]
test_di_yogyakarta = test_data["DI YOGYAKARTA"]

Make prediction for DI YOGYAKARTA¶

In [86]:
best_param_di_yogyakarta, lowest_mape_di_yogyakarta, lowest_mae_di_yogyakarta, prediction_di_yogyakarta = make_arima_prediction(train_di_yogyakarta, test_di_yogyakarta)

all_provinces_predictions['DI YOGYAKARTA'] = prediction_di_yogyakarta
ARIMA(0, 0, 0)
MAPE: 35.27%
MAE: 1229887.2
==================================================
ARIMA(0, 0, 1)
MAPE: 34.29%
MAE: 1188821.37
==================================================
ARIMA(0, 0, 2)
MAPE: 33.28%
MAE: 1156399.19
==================================================
ARIMA(0, 0, 3)
MAPE: 32.56%
MAE: 1134794.51
==================================================
ARIMA(0, 0, 4)
MAPE: 32.65%
MAE: 1137724.55
==================================================
ARIMA(0, 1, 0)
MAPE: 17.35%
MAE: 634815.63
==================================================
ARIMA(0, 1, 1)
MAPE: 19.3%
MAE: 706963.97
==================================================
ARIMA(0, 1, 2)
MAPE: 20.28%
MAE: 738446.61
==================================================
ARIMA(0, 1, 3)
MAPE: 22.94%
MAE: 825787.63
==================================================
ARIMA(0, 1, 4)
MAPE: 23.15%
MAE: 830624.7
==================================================
ARIMA(1, 0, 0)
MAPE: 31.61%
MAE: 1103406.91
==================================================
ARIMA(1, 0, 1)
MAPE: 31.36%
MAE: 1095915.78
==================================================
ARIMA(1, 0, 2)
MAPE: 32.1%
MAE: 1119659.1
==================================================
ARIMA(1, 0, 3)
MAPE: 32.78%
MAE: 1142162.34
==================================================
ARIMA(1, 0, 4)
MAPE: 32.65%
MAE: 1137501.88
==================================================
ARIMA(1, 1, 0)
MAPE: 18.85%
MAE: 691182.72
==================================================
ARIMA(1, 1, 1)
MAPE: 22.47%
MAE: 807646.82
==================================================
ARIMA(1, 1, 2)
MAPE: 22.59%
MAE: 812005.0
==================================================
ARIMA(1, 1, 3)
MAPE: 22.99%
MAE: 826328.95
==================================================
ARIMA(1, 1, 4)
MAPE: 24.16%
MAE: 866997.57
==================================================
ARIMA(2, 0, 0)
MAPE: 31.26%
MAE: 1093211.23
==================================================
ARIMA(2, 0, 1)
MAPE: 31.2%
MAE: 1091477.65
==================================================
ARIMA(2, 0, 2)
MAPE: 32.97%
MAE: 1146088.93
==================================================
ARIMA(2, 0, 3)
MAPE: 33.45%
MAE: 1159753.78
==================================================
ARIMA(2, 0, 4)
MAPE: 29.37%
MAE: 1034562.41
==================================================
ARIMA(2, 1, 0)
MAPE: 18.72%
MAE: 686269.32
==================================================
ARIMA(2, 1, 1)
MAPE: 18.67%
MAE: 684580.67
==================================================
ARIMA(2, 1, 2)
MAPE: 22.66%
MAE: 815014.24
==================================================
ARIMA(2, 1, 3)
MAPE: 23.07%
MAE: 826034.24
==================================================
ARIMA(2, 1, 4)
MAPE: 24.1%
MAE: 863664.95
==================================================
ARIMA(3, 0, 0)
MAPE: 32.25%
MAE: 1124162.91
==================================================
ARIMA(3, 0, 1)
MAPE: 32.22%
MAE: 1123227.47
==================================================
ARIMA(3, 0, 2)
MAPE: 32.69%
MAE: 1133774.77
==================================================
ARIMA(3, 0, 3)
MAPE: 32.34%
MAE: 1124635.26
==================================================
ARIMA(3, 0, 4)
MAPE: 29.6%
MAE: 1041530.14
==================================================
ARIMA(3, 1, 0)
MAPE: 19.32%
MAE: 706915.91
==================================================
ARIMA(3, 1, 1)
MAPE: 21.8%
MAE: 786334.02
==================================================
ARIMA(3, 1, 2)
MAPE: 21.13%
MAE: 765021.71
==================================================
ARIMA(3, 1, 3)
MAPE: 23.17%
MAE: 829253.47
==================================================
ARIMA(3, 1, 4)
MAPE: 23.85%
MAE: 854197.19
==================================================
ARIMA(4, 0, 0)
MAPE: 32.11%
MAE: 1119590.78
==================================================
ARIMA(4, 0, 1)
MAPE: 33.11%
MAE: 1153926.39
==================================================
ARIMA(4, 0, 2)
MAPE: 32.82%
MAE: 1134452.4
==================================================
ARIMA(4, 0, 3)
MAPE: 32.47%
MAE: 1130027.06
==================================================
ARIMA(4, 0, 4)
MAPE: 29.25%
MAE: 1025448.59
==================================================
ARIMA(4, 1, 0)
MAPE: 22.86%
MAE: 822461.4
==================================================
ARIMA(4, 1, 1)
MAPE: 20.87%
MAE: 756480.34
==================================================
ARIMA(4, 1, 2)
MAPE: 22.12%
MAE: 799636.24
==================================================
ARIMA(4, 1, 3)
MAPE: 22.36%
MAE: 806794.26
==================================================
ARIMA(4, 1, 4)
MAPE: 23.61%
MAE: 845901.93
==================================================

Best parameter, lowest MAPE, and lowest MAE for DI YOGYAKARTA¶

In [87]:
print(f"Best parameters model for DI YOGYAKARTA:", best_param_di_yogyakarta)
print(f"with the lowest MAPE: {lowest_mape_di_yogyakarta.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_di_yogyakarta.round(2)}")
Best parameters model for DI YOGYAKARTA: (0, 1, 0)
with the lowest MAPE: 17.35%
with the lowest MAE: 634815.63

Make prediction vs actual plot for DI YOGYAKARTA¶

In [88]:
plot_predictions_vs_actual(prediction_series=prediction_di_yogyakarta, actual_series=test_di_yogyakarta)
No description has been provided for this image

JAWA TIMUR (15)¶

Split JAWA TIMUR dataset¶

In [89]:
train_jawa_timur = training_data["JAWA TIMUR"]
test_jawa_timur = test_data["JAWA TIMUR"]

Make prediction for JAWA TIMUR¶

In [90]:
best_param_jawa_timur, lowest_mape_jawa_timur, lowest_mae_jawa_timur, prediction_jawa_timur = make_arima_prediction(train_jawa_timur, test_jawa_timur)

all_provinces_predictions['JAWA TIMUR'] = prediction_jawa_timur
ARIMA(0, 0, 0)
MAPE: 14.17%
MAE: 3014299.1
==================================================
ARIMA(0, 0, 1)
MAPE: 19.39%
MAE: 4043439.7
==================================================
ARIMA(0, 0, 2)
MAPE: 19.04%
MAE: 4004129.91
==================================================
ARIMA(0, 0, 3)
MAPE: 19.4%
MAE: 4118298.46
==================================================
ARIMA(0, 0, 4)
MAPE: 19.56%
MAE: 4120148.67
==================================================
ARIMA(0, 1, 0)
MAPE: 11.06%
MAE: 2215606.13
==================================================
ARIMA(0, 1, 1)
MAPE: 11.1%
MAE: 2426644.36
==================================================
ARIMA(0, 1, 2)
MAPE: 10.23%
MAE: 2224226.45
==================================================
ARIMA(0, 1, 3)
MAPE: 9.5%
MAE: 2120434.29
==================================================
ARIMA(0, 1, 4)
MAPE: 9.44%
MAE: 2110927.8
==================================================
ARIMA(1, 0, 0)
MAPE: 15.36%
MAE: 3301037.74
==================================================
ARIMA(1, 0, 1)
MAPE: 14.69%
MAE: 3142751.21
==================================================
ARIMA(1, 0, 2)
MAPE: 14.05%
MAE: 3026833.07
==================================================
ARIMA(1, 0, 3)
MAPE: 12.28%
MAE: 2683952.27
==================================================
ARIMA(1, 0, 4)
MAPE: 12.22%
MAE: 2673142.07
==================================================
ARIMA(1, 1, 0)
MAPE: 9.17%
MAE: 2017376.97
==================================================
ARIMA(1, 1, 1)
MAPE: 9.53%
MAE: 2092416.1
==================================================
ARIMA(1, 1, 2)
MAPE: 9.71%
MAE: 2131379.5
==================================================
ARIMA(1, 1, 3)
MAPE: 9.44%
MAE: 2111991.97
==================================================
ARIMA(1, 1, 4)
MAPE: 9.43%
MAE: 2109609.6
==================================================
ARIMA(2, 0, 0)
MAPE: 14.52%
MAE: 3104548.96
==================================================
ARIMA(2, 0, 1)
MAPE: 14.49%
MAE: 3097325.19
==================================================
ARIMA(2, 0, 2)
MAPE: 14.29%
MAE: 3064630.96
==================================================
ARIMA(2, 0, 3)
MAPE: 12.21%
MAE: 2670698.15
==================================================
ARIMA(2, 0, 4)
MAPE: 11.96%
MAE: 2625772.04
==================================================
ARIMA(2, 1, 0)
MAPE: 9.5%
MAE: 2084685.19
==================================================
ARIMA(2, 1, 1)
MAPE: 9.99%
MAE: 2195209.06
==================================================
ARIMA(2, 1, 2)
MAPE: 9.6%
MAE: 2102132.9
==================================================
ARIMA(2, 1, 3)
MAPE: 9.51%
MAE: 2115214.77
==================================================
ARIMA(2, 1, 4)
MAPE: 9.22%
MAE: 2082443.37
==================================================
ARIMA(3, 0, 0)
MAPE: 14.45%
MAE: 3089326.37
==================================================
ARIMA(3, 0, 1)
MAPE: 14.44%
MAE: 3089617.41
==================================================
ARIMA(3, 0, 2)
MAPE: 14.52%
MAE: 3137315.66
==================================================
ARIMA(3, 0, 3)
MAPE: 14.12%
MAE: 3049396.3
==================================================
ARIMA(3, 0, 4)
MAPE: 12.27%
MAE: 2685271.32
==================================================
ARIMA(3, 1, 0)
MAPE: 9.52%
MAE: 2089560.16
==================================================
ARIMA(3, 1, 1)
MAPE: 9.12%
MAE: 2025334.16
==================================================
ARIMA(3, 1, 2)
MAPE: 10.15%
MAE: 2231904.92
==================================================
ARIMA(3, 1, 3)
MAPE: 9.28%
MAE: 2078885.94
==================================================
ARIMA(3, 1, 4)
MAPE: 9.29%
MAE: 2081551.09
==================================================
ARIMA(4, 0, 0)
MAPE: 14.32%
MAE: 3073528.26
==================================================
ARIMA(4, 0, 1)
MAPE: 14.4%
MAE: 3100034.37
==================================================
ARIMA(4, 0, 2)
MAPE: 14.33%
MAE: 3111347.72
==================================================
ARIMA(4, 0, 3)
MAPE: 11.7%
MAE: 2586147.0
==================================================
ARIMA(4, 0, 4)
MAPE: 11.82%
MAE: 2601350.49
==================================================
ARIMA(4, 1, 0)
MAPE: 10.66%
MAE: 2371799.52
==================================================
ARIMA(4, 1, 1)
MAPE: 10.66%
MAE: 2365179.88
==================================================
ARIMA(4, 1, 2)
MAPE: 10.1%
MAE: 2220609.78
==================================================
ARIMA(4, 1, 3)
MAPE: 11.57%
MAE: 2283548.38
==================================================
ARIMA(4, 1, 4)
MAPE: 12.21%
MAE: 2403476.32
==================================================

Best parameter, lowest MAPE, and lowest MAE for JAWA TIMUR¶

In [91]:
print(f"Best parameters model for JAWA TIMUR:", best_param_jawa_timur)
print(f"with the lowest MAPE: {lowest_mape_jawa_timur.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_jawa_timur.round(2)}")
Best parameters model for JAWA TIMUR: (3, 1, 1)
with the lowest MAPE: 9.12%
with the lowest MAE: 2025334.16

Make prediction vs actual plot for JAWA TIMUR¶

In [92]:
plot_predictions_vs_actual(prediction_series=prediction_jawa_timur, actual_series=test_jawa_timur)
No description has been provided for this image

BANTEN (16)¶

Split BANTEN dataset¶

In [93]:
train_banten = training_data["BANTEN"]
test_banten = test_data["BANTEN"]

Make prediction for BANTEN¶

In [94]:
best_param_banten, lowest_mape_banten, lowest_mae_banten, prediction_banten = make_arima_prediction(train_banten, test_banten)

all_provinces_predictions['BANTEN'] = prediction_banten
ARIMA(0, 0, 0)
MAPE: 20.73%
MAE: 863211.73
==================================================
ARIMA(0, 0, 1)
MAPE: 17.83%
MAE: 748515.49
==================================================
ARIMA(0, 0, 2)
MAPE: 16.42%
MAE: 693436.25
==================================================
ARIMA(0, 0, 3)
MAPE: 15.57%
MAE: 662007.21
==================================================
ARIMA(0, 0, 4)
MAPE: 15.62%
MAE: 663727.36
==================================================
ARIMA(0, 1, 0)
MAPE: 19.04%
MAE: 746137.45
==================================================
ARIMA(0, 1, 1)
MAPE: 16.16%
MAE: 637383.34
==================================================
ARIMA(0, 1, 2)
MAPE: 15.92%
MAE: 628399.56
==================================================
ARIMA(0, 1, 3)
MAPE: 13.1%
MAE: 525497.51
==================================================
ARIMA(0, 1, 4)
MAPE: 8.66%
MAE: 367056.84
==================================================
ARIMA(1, 0, 0)
MAPE: 12.24%
MAE: 522266.73
==================================================
ARIMA(1, 0, 1)
MAPE: 12.52%
MAE: 533641.2
==================================================
ARIMA(1, 0, 2)
MAPE: 15.03%
MAE: 637314.13
==================================================
ARIMA(1, 0, 3)
MAPE: 13.94%
MAE: 591587.51
==================================================
ARIMA(1, 0, 4)
MAPE: 14.02%
MAE: 596065.22
==================================================
ARIMA(1, 1, 0)
MAPE: 16.62%
MAE: 654411.72
==================================================
ARIMA(1, 1, 1)
MAPE: 16.91%
MAE: 665073.08
==================================================
ARIMA(1, 1, 2)
MAPE: 16.53%
MAE: 651155.59
==================================================
ARIMA(1, 1, 3)
MAPE: 9.09%
MAE: 383054.21
==================================================
ARIMA(1, 1, 4)
MAPE: 11.4%
MAE: 463555.27
==================================================
ARIMA(2, 0, 0)
MAPE: 12.65%
MAE: 539298.11
==================================================
ARIMA(2, 0, 1)
MAPE: 11.93%
MAE: 509427.75
==================================================
ARIMA(2, 0, 2)
MAPE: 14.81%
MAE: 627664.55
==================================================
ARIMA(2, 0, 3)
MAPE: 15.16%
MAE: 641786.72
==================================================
ARIMA(2, 0, 4)
MAPE: 13.82%
MAE: 584946.67
==================================================
ARIMA(2, 1, 0)
MAPE: 16.69%
MAE: 657115.29
==================================================
ARIMA(2, 1, 1)
MAPE: 9.22%
MAE: 381263.43
==================================================
ARIMA(2, 1, 2)
MAPE: 8.73%
MAE: 366124.33
==================================================
ARIMA(2, 1, 3)
MAPE: 9.06%
MAE: 380434.83
==================================================
ARIMA(2, 1, 4)
MAPE: 11.92%
MAE: 482543.82
==================================================
ARIMA(3, 0, 0)
MAPE: 14.53%
MAE: 616459.81
==================================================
ARIMA(3, 0, 1)
MAPE: 14.47%
MAE: 613564.65
==================================================
ARIMA(3, 0, 2)
MAPE: 14.18%
MAE: 603808.87
==================================================
ARIMA(3, 0, 3)
MAPE: 12.7%
MAE: 538765.84
==================================================
ARIMA(3, 0, 4)
MAPE: 14.01%
MAE: 590849.48
==================================================
ARIMA(3, 1, 0)
MAPE: 15.6%
MAE: 617075.02
==================================================
ARIMA(3, 1, 1)
MAPE: 13.84%
MAE: 552587.53
==================================================
ARIMA(3, 1, 2)
MAPE: 15.66%
MAE: 616926.26
==================================================
ARIMA(3, 1, 3)
MAPE: 7.94%
MAE: 330121.62
==================================================
ARIMA(3, 1, 4)
MAPE: 8.66%
MAE: 369511.74
==================================================
ARIMA(4, 0, 0)
MAPE: 13.81%
MAE: 586150.05
==================================================
ARIMA(4, 0, 1)
MAPE: 13.56%
MAE: 576012.82
==================================================
ARIMA(4, 0, 2)
MAPE: 12.59%
MAE: 537535.72
==================================================
ARIMA(4, 0, 3)
MAPE: 14.35%
MAE: 609798.96
==================================================
ARIMA(4, 0, 4)
MAPE: 13.95%
MAE: 588733.74
==================================================
ARIMA(4, 1, 0)
MAPE: 13.11%
MAE: 526859.79
==================================================
ARIMA(4, 1, 1)
MAPE: 13.14%
MAE: 526256.4
==================================================
ARIMA(4, 1, 2)
MAPE: 13.08%
MAE: 518741.59
==================================================
ARIMA(4, 1, 3)
MAPE: 7.66%
MAE: 321860.43
==================================================
ARIMA(4, 1, 4)
MAPE: 7.39%
MAE: 315266.31
==================================================

Best parameter, lowest MAPE, and lowest MAE for BANTEN¶

In [95]:
print(f"Best parameters model for BANTEN:", best_param_banten)
print(f"with the lowest MAPE: {lowest_mape_banten.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_banten.round(2)}")
Best parameters model for BANTEN: (4, 1, 4)
with the lowest MAPE: 7.39%
with the lowest MAE: 315266.31

Make prediction vs actual plot for BANTEN¶

In [96]:
plot_predictions_vs_actual(prediction_series=prediction_banten, actual_series=test_banten)
No description has been provided for this image

BALI (17)¶

Split BALI dataset¶

In [97]:
train_bali = training_data["BALI"]
test_bali = test_data["BALI"]

Make prediction for BALI¶

In [98]:
best_param_bali, lowest_mape_bali, lowest_mae_bali, prediction_bali = make_arima_prediction(train_bali, test_bali)

all_provinces_predictions['BALI'] = prediction_bali
ARIMA(0, 0, 0)
MAPE: 35.51%
MAE: 688914.85
==================================================
ARIMA(0, 0, 1)
MAPE: 32.1%
MAE: 621502.4
==================================================
ARIMA(0, 0, 2)
MAPE: 28.89%
MAE: 557916.13
==================================================
ARIMA(0, 0, 3)
MAPE: 26.92%
MAE: 519950.16
==================================================
ARIMA(0, 0, 4)
MAPE: 25.32%
MAE: 488359.76
==================================================
ARIMA(0, 1, 0)
MAPE: 4.17%
MAE: 78647.39
==================================================
ARIMA(0, 1, 1)
MAPE: 3.34%
MAE: 62804.22
==================================================
ARIMA(0, 1, 2)
MAPE: 3.19%
MAE: 60112.97
==================================================
ARIMA(0, 1, 3)
MAPE: 2.82%
MAE: 53081.7
==================================================
ARIMA(0, 1, 4)
MAPE: 2.97%
MAE: 57196.2
==================================================
ARIMA(1, 0, 0)
MAPE: 11.74%
MAE: 227629.49
==================================================
ARIMA(1, 0, 1)
MAPE: 10.8%
MAE: 209669.59
==================================================
ARIMA(1, 0, 2)
MAPE: 9.86%
MAE: 191705.41
==================================================
ARIMA(1, 0, 3)
MAPE: 9.71%
MAE: 188728.87
==================================================
ARIMA(1, 0, 4)
MAPE: 9.54%
MAE: 185539.13
==================================================
ARIMA(1, 1, 0)
MAPE: 3.42%
MAE: 64342.47
==================================================
ARIMA(1, 1, 1)
MAPE: 3.12%
MAE: 61462.91
==================================================
ARIMA(1, 1, 2)
MAPE: 2.97%
MAE: 58666.92
==================================================
ARIMA(1, 1, 3)
MAPE: 2.68%
MAE: 50532.92
==================================================
ARIMA(1, 1, 4)
MAPE: 3.19%
MAE: 61254.48
==================================================
ARIMA(2, 0, 0)
MAPE: 10.91%
MAE: 211794.55
==================================================
ARIMA(2, 0, 1)
MAPE: 9.92%
MAE: 192737.19
==================================================
ARIMA(2, 0, 2)
MAPE: 9.6%
MAE: 186727.34
==================================================
ARIMA(2, 0, 3)
MAPE: 9.71%
MAE: 188734.94
==================================================
ARIMA(2, 0, 4)
MAPE: 9.55%
MAE: 185793.83
==================================================
ARIMA(2, 1, 0)
MAPE: 3.35%
MAE: 63021.35
==================================================
ARIMA(2, 1, 1)
MAPE: 2.95%
MAE: 58197.48
==================================================
ARIMA(2, 1, 2)
MAPE: 3.08%
MAE: 60787.85
==================================================
ARIMA(2, 1, 3)
MAPE: 3.67%
MAE: 69221.12
==================================================
ARIMA(2, 1, 4)
MAPE: 3.41%
MAE: 64254.66
==================================================
ARIMA(3, 0, 0)
MAPE: 10.3%
MAE: 200050.4
==================================================
ARIMA(3, 0, 1)
MAPE: 9.72%
MAE: 189011.66
==================================================
ARIMA(3, 0, 2)
MAPE: 10.5%
MAE: 202903.87
==================================================
ARIMA(3, 0, 3)
MAPE: 11.83%
MAE: 228373.71
==================================================
ARIMA(3, 0, 4)
MAPE: 9.6%
MAE: 186443.03
==================================================
ARIMA(3, 1, 0)
MAPE: 3.04%
MAE: 57055.41
==================================================
ARIMA(3, 1, 1)
MAPE: 2.68%
MAE: 50430.7
==================================================
ARIMA(3, 1, 2)
MAPE: 3.35%
MAE: 64578.39
==================================================
ARIMA(3, 1, 3)
MAPE: 2.37%
MAE: 46366.68
==================================================
ARIMA(3, 1, 4)
MAPE: 3.48%
MAE: 65561.45
==================================================
ARIMA(4, 0, 0)
MAPE: 9.89%
MAE: 192286.65
==================================================
ARIMA(4, 0, 1)
MAPE: 9.51%
MAE: 184889.76
==================================================
ARIMA(4, 0, 2)
MAPE: 11.72%
MAE: 226186.04
==================================================
ARIMA(4, 0, 3)
MAPE: 10.63%
MAE: 205400.95
==================================================
ARIMA(4, 0, 4)
MAPE: 9.51%
MAE: 184643.85
==================================================
ARIMA(4, 1, 0)
MAPE: 2.67%
MAE: 50669.14
==================================================
ARIMA(4, 1, 1)
MAPE: 2.73%
MAE: 51775.19
==================================================
ARIMA(4, 1, 2)
MAPE: 3.85%
MAE: 72735.67
==================================================
ARIMA(4, 1, 3)
MAPE: 3.67%
MAE: 69458.69
==================================================
ARIMA(4, 1, 4)
MAPE: 3.25%
MAE: 64181.66
==================================================

Best parameter, lowest MAPE, and lowest MAE for BALI¶

In [99]:
print(f"Best parameters model for BALI:", best_param_bali)
print(f"with the lowest MAPE: {lowest_mape_bali.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_bali.round(2)}")
Best parameters model for BALI: (3, 1, 3)
with the lowest MAPE: 2.37%
with the lowest MAE: 46366.68

Make prediction vs actual plot for BALI¶

In [100]:
plot_predictions_vs_actual(prediction_series=prediction_bali, actual_series=test_bali)
No description has been provided for this image

NUSA TENGGARA BARAT (18)¶

Split NUSA TENGGARA BARAT dataset¶

In [101]:
train_nusa_tenggara_barat = training_data["NUSA TENGGARA BARAT"]
test_nusa_tenggara_barat = test_data["NUSA TENGGARA BARAT"]

Make prediction for NUSA TENGGARA BARAT¶

In [102]:
best_param_nusa_tenggara_barat, lowest_mape_nusa_tenggara_barat, lowest_mae_nusa_tenggara_barat, prediction_nusa_tenggara_barat = make_arima_prediction(train_nusa_tenggara_barat, test_nusa_tenggara_barat)

all_provinces_predictions['NUSA TENGGARA BARAT'] = prediction_nusa_tenggara_barat
ARIMA(0, 0, 0)
MAPE: 53.22%
MAE: 583458.07
==================================================
ARIMA(0, 0, 1)
MAPE: 51.64%
MAE: 565744.32
==================================================
ARIMA(0, 0, 2)
MAPE: 51.57%
MAE: 563503.94
==================================================
ARIMA(0, 0, 3)
MAPE: 58.81%
MAE: 638680.75
==================================================
ARIMA(0, 0, 4)
MAPE: 64.77%
MAE: 701415.45
==================================================
ARIMA(0, 1, 0)
MAPE: 32.8%
MAE: 362589.61
==================================================
ARIMA(0, 1, 1)
MAPE: 39.53%
MAE: 435555.72
==================================================
ARIMA(0, 1, 2)
MAPE: 35.01%
MAE: 386433.49
==================================================
ARIMA(0, 1, 3)
MAPE: 31.98%
MAE: 353047.38
==================================================
ARIMA(0, 1, 4)
MAPE: 31.71%
MAE: 349263.14
==================================================
ARIMA(1, 0, 0)
MAPE: 34.89%
MAE: 384372.07
==================================================
ARIMA(1, 0, 1)
MAPE: 43.62%
MAE: 478141.49
==================================================
ARIMA(1, 0, 2)
MAPE: 51.27%
MAE: 559969.86
==================================================
ARIMA(1, 0, 3)
MAPE: 44.44%
MAE: 486215.5
==================================================
ARIMA(1, 0, 4)
MAPE: 44.36%
MAE: 485174.88
==================================================
ARIMA(1, 1, 0)
MAPE: 39.16%
MAE: 431580.05
==================================================
ARIMA(1, 1, 1)
MAPE: 38.25%
MAE: 421660.87
==================================================
ARIMA(1, 1, 2)
MAPE: 44.28%
MAE: 487402.39
==================================================
ARIMA(1, 1, 3)
MAPE: 31.7%
MAE: 349735.16
==================================================
ARIMA(1, 1, 4)
MAPE: 31.81%
MAE: 350426.2
==================================================
ARIMA(2, 0, 0)
MAPE: 49.43%
MAE: 540966.66
==================================================
ARIMA(2, 0, 1)
MAPE: 47.13%
MAE: 515913.18
==================================================
ARIMA(2, 0, 2)
MAPE: 48.4%
MAE: 529140.3
==================================================
ARIMA(2, 0, 3)
MAPE: 44.42%
MAE: 485902.26
==================================================
ARIMA(2, 0, 4)
MAPE: 73.27%
MAE: 804207.3
==================================================
ARIMA(2, 1, 0)
MAPE: 33.93%
MAE: 374682.18
==================================================
ARIMA(2, 1, 1)
MAPE: 46.22%
MAE: 508441.11
==================================================
ARIMA(2, 1, 2)
MAPE: 45.35%
MAE: 496262.53
==================================================
ARIMA(2, 1, 3)
MAPE: 45.19%
MAE: 494492.69
==================================================
ARIMA(2, 1, 4)
MAPE: 46.65%
MAE: 510412.94
==================================================
ARIMA(3, 0, 0)
MAPE: 43.94%
MAE: 481154.23
==================================================
ARIMA(3, 0, 1)
MAPE: 43.17%
MAE: 472691.91
==================================================
ARIMA(3, 0, 2)
MAPE: 47.81%
MAE: 520141.19
==================================================
ARIMA(3, 0, 3)
MAPE: 49.35%
MAE: 536847.98
==================================================
ARIMA(3, 0, 4)
MAPE: 49.76%
MAE: 540728.42
==================================================
ARIMA(3, 1, 0)
MAPE: 31.32%
MAE: 345784.81
==================================================
ARIMA(3, 1, 1)
MAPE: 31.91%
MAE: 352256.92
==================================================
ARIMA(3, 1, 2)
MAPE: 44.74%
MAE: 489633.54
==================================================
ARIMA(3, 1, 3)
MAPE: 49.59%
MAE: 541409.56
==================================================
ARIMA(3, 1, 4)
MAPE: 47.85%
MAE: 523028.25
==================================================
ARIMA(4, 0, 0)
MAPE: 40.88%
MAE: 447362.25
==================================================
ARIMA(4, 0, 1)
MAPE: 42.17%
MAE: 461968.9
==================================================
ARIMA(4, 0, 2)
MAPE: 50.37%
MAE: 546956.79
==================================================
ARIMA(4, 0, 3)
MAPE: 48.9%
MAE: 531948.42
==================================================
ARIMA(4, 0, 4)
MAPE: 93.79%
MAE: 1022371.55
==================================================
ARIMA(4, 1, 0)
MAPE: 34.85%
MAE: 384622.33
==================================================
ARIMA(4, 1, 1)
MAPE: 37.28%
MAE: 411222.87
==================================================
ARIMA(4, 1, 2)
MAPE: 46.01%
MAE: 503514.77
==================================================
ARIMA(4, 1, 3)
MAPE: 44.43%
MAE: 486303.81
==================================================
ARIMA(4, 1, 4)
MAPE: 53.15%
MAE: 580265.73
==================================================

Best parameter, lowest MAPE, and lowest MAE for NUSA TENGGARA BARAT¶

In [103]:
print(f"Best parameters model for NUSA TENGGARA BARAT:", best_param_nusa_tenggara_barat)
print(f"with the lowest MAPE: {lowest_mape_nusa_tenggara_barat.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_nusa_tenggara_barat.round(2)}")
Best parameters model for NUSA TENGGARA BARAT: (3, 1, 0)
with the lowest MAPE: 31.32%
with the lowest MAE: 345784.81

Make prediction vs actual plot for NUSA TENGGARA BARAT¶

In [104]:
plot_predictions_vs_actual(prediction_series=prediction_nusa_tenggara_barat, actual_series=test_nusa_tenggara_barat)
No description has been provided for this image

NUSA TENGGARA TIMUR (19)¶

Split NUSA TENGGARA TIMUR dataset¶

In [105]:
train_nusa_tenggara_timur = training_data["NUSA TENGGARA TIMUR"]
test_nusa_tenggara_timur = test_data["NUSA TENGGARA TIMUR"]

Make prediction for NUSA TENGGARA TIMUR¶

In [106]:
best_param_nusa_tenggara_timur, lowest_mape_nusa_tenggara_timur, lowest_mae_nusa_tenggara_timur, prediction_nusa_tenggara_timur = make_arima_prediction(train_nusa_tenggara_timur, test_nusa_tenggara_timur)

all_provinces_predictions['NUSA TENGGARA TIMUR'] = prediction_nusa_tenggara_timur
ARIMA(0, 0, 0)
MAPE: 43.85%
MAE: 281686.59
==================================================
ARIMA(0, 0, 1)
MAPE: 37.64%
MAE: 238099.51
==================================================
ARIMA(0, 0, 2)
MAPE: 32.02%
MAE: 202419.47
==================================================
ARIMA(0, 0, 3)
MAPE: 28.47%
MAE: 179665.66
==================================================
ARIMA(0, 0, 4)
MAPE: 26.43%
MAE: 167403.19
==================================================
ARIMA(0, 1, 0)
MAPE: 20.77%
MAE: 130481.07
==================================================
ARIMA(0, 1, 1)
MAPE: 4.56%
MAE: 30388.01
==================================================
ARIMA(0, 1, 2)
MAPE: 9.0%
MAE: 58534.01
==================================================
ARIMA(0, 1, 3)
MAPE: 12.61%
MAE: 81321.81
==================================================
ARIMA(0, 1, 4)
MAPE: 16.54%
MAE: 105664.43
==================================================
ARIMA(1, 0, 0)
MAPE: 17.83%
MAE: 114146.62
==================================================
ARIMA(1, 0, 1)
MAPE: 15.51%
MAE: 98717.18
==================================================
ARIMA(1, 0, 2)
MAPE: 15.99%
MAE: 101854.5
==================================================
ARIMA(1, 0, 3)
MAPE: 15.58%
MAE: 99761.61
==================================================
ARIMA(1, 0, 4)
MAPE: 16.07%
MAE: 102797.59
==================================================
ARIMA(1, 1, 0)
MAPE: 9.4%
MAE: 59005.34
==================================================
ARIMA(1, 1, 1)
MAPE: 23.88%
MAE: 151028.84
==================================================
ARIMA(1, 1, 2)
MAPE: 21.51%
MAE: 136804.01
==================================================
ARIMA(1, 1, 3)
MAPE: 20.72%
MAE: 131709.55
==================================================
ARIMA(1, 1, 4)
MAPE: 16.11%
MAE: 103142.59
==================================================
ARIMA(2, 0, 0)
MAPE: 15.41%
MAE: 98292.85
==================================================
ARIMA(2, 0, 1)
MAPE: 16.04%
MAE: 102158.9
==================================================
ARIMA(2, 0, 2)
MAPE: 15.99%
MAE: 101949.1
==================================================
ARIMA(2, 0, 3)
MAPE: 15.6%
MAE: 99849.13
==================================================
ARIMA(2, 0, 4)
MAPE: 13.16%
MAE: 85032.43
==================================================
ARIMA(2, 1, 0)
MAPE: 4.68%
MAE: 29954.97
==================================================
ARIMA(2, 1, 1)
MAPE: 21.44%
MAE: 136233.44
==================================================
ARIMA(2, 1, 2)
MAPE: 21.31%
MAE: 135578.62
==================================================
ARIMA(2, 1, 3)
MAPE: 11.6%
MAE: 75991.35
==================================================
ARIMA(2, 1, 4)
MAPE: 18.66%
MAE: 121153.74
==================================================
ARIMA(3, 0, 0)
MAPE: 15.54%
MAE: 99077.26
==================================================
ARIMA(3, 0, 1)
MAPE: 15.37%
MAE: 98012.14
==================================================
ARIMA(3, 0, 2)
MAPE: 15.6%
MAE: 99507.97
==================================================
ARIMA(3, 0, 3)
MAPE: 17.59%
MAE: 112426.09
==================================================
ARIMA(3, 0, 4)
MAPE: 12.88%
MAE: 83233.3
==================================================
ARIMA(3, 1, 0)
MAPE: 4.71%
MAE: 31482.69
==================================================
ARIMA(3, 1, 1)
MAPE: 9.8%
MAE: 63705.29
==================================================
ARIMA(3, 1, 2)
MAPE: 16.96%
MAE: 110281.98
==================================================
ARIMA(3, 1, 3)
MAPE: 20.17%
MAE: 131077.34
==================================================
ARIMA(3, 1, 4)
MAPE: 11.18%
MAE: 73174.7
==================================================
ARIMA(4, 0, 0)
MAPE: 16.21%
MAE: 103483.48
==================================================
ARIMA(4, 0, 1)
MAPE: 16.64%
MAE: 106241.81
==================================================
ARIMA(4, 0, 2)
MAPE: 12.8%
MAE: 82389.35
==================================================
ARIMA(4, 0, 3)
MAPE: 15.4%
MAE: 98569.77
==================================================
ARIMA(4, 0, 4)
MAPE: 12.94%
MAE: 83796.85
==================================================
ARIMA(4, 1, 0)
MAPE: 10.82%
MAE: 70571.97
==================================================
ARIMA(4, 1, 1)
MAPE: 11.03%
MAE: 71884.64
==================================================
ARIMA(4, 1, 2)
MAPE: 16.65%
MAE: 108406.1
==================================================
ARIMA(4, 1, 3)
MAPE: 13.1%
MAE: 85202.81
==================================================
ARIMA(4, 1, 4)
MAPE: 20.7%
MAE: 132615.83
==================================================

Best parameter, lowest MAPE, and lowest MAE for NUSA TENGGARA TIMUR¶

In [107]:
print(f"Best parameters model for NUSA TENGGARA TIMUR:", best_param_nusa_tenggara_timur)
print(f"with the lowest MAPE: {lowest_mape_nusa_tenggara_timur.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_nusa_tenggara_timur.round(2)}")
Best parameters model for NUSA TENGGARA TIMUR: (0, 1, 1)
with the lowest MAPE: 4.56%
with the lowest MAE: 30388.01

Make prediction vs actual plot for NUSA TENGGARA TIMUR¶

In [108]:
plot_predictions_vs_actual(prediction_series=prediction_nusa_tenggara_timur, actual_series=test_nusa_tenggara_timur)
No description has been provided for this image

KALIMANTAR BARAT (20)¶

Split KALIMANTAN BARAT dataset¶

In [109]:
train_kalimantan_barat = training_data["KALIMANTAN BARAT"]
test_kalimantan_barat = test_data["KALIMANTAN BARAT"]

Make prediction for KALIMANTAN BARAT¶

In [110]:
best_param_kalimantan_barat, lowest_mape_kalimantan_barat, lowest_mae_kalimantan_barat, prediction_kalimantan_barat = make_arima_prediction(train_kalimantan_barat, test_kalimantan_barat)

all_provinces_predictions['KALIMANTAN BARAT'] = prediction_kalimantan_barat
ARIMA(0, 0, 0)
MAPE: 48.87%
MAE: 339001.62
==================================================
ARIMA(0, 0, 1)
MAPE: 42.49%
MAE: 294681.29
==================================================
ARIMA(0, 0, 2)
MAPE: 36.7%
MAE: 256454.96
==================================================
ARIMA(0, 0, 3)
MAPE: 28.58%
MAE: 203536.83
==================================================
ARIMA(0, 0, 4)
MAPE: 24.85%
MAE: 175590.88
==================================================
ARIMA(0, 1, 0)
MAPE: 15.27%
MAE: 102302.84
==================================================
ARIMA(0, 1, 1)
MAPE: 8.49%
MAE: 64598.47
==================================================
ARIMA(0, 1, 2)
MAPE: 9.22%
MAE: 69809.67
==================================================
ARIMA(0, 1, 3)
MAPE: 10.63%
MAE: 79948.58
==================================================
ARIMA(0, 1, 4)
MAPE: 10.24%
MAE: 76945.58
==================================================
ARIMA(1, 0, 0)
MAPE: 8.07%
MAE: 61169.61
==================================================
ARIMA(1, 0, 1)
MAPE: 7.42%
MAE: 57014.0
==================================================
ARIMA(1, 0, 2)
MAPE: 5.6%
MAE: 44354.9
==================================================
ARIMA(1, 0, 3)
MAPE: 6.01%
MAE: 47401.59
==================================================
ARIMA(1, 0, 4)
MAPE: 6.96%
MAE: 52762.89
==================================================
ARIMA(1, 1, 0)
MAPE: 8.37%
MAE: 61504.16
==================================================
ARIMA(1, 1, 1)
MAPE: 9.55%
MAE: 72177.48
==================================================
ARIMA(1, 1, 2)
MAPE: 9.71%
MAE: 73365.42
==================================================
ARIMA(1, 1, 3)
MAPE: 10.53%
MAE: 79201.48
==================================================
ARIMA(1, 1, 4)
MAPE: 8.85%
MAE: 67515.87
==================================================
ARIMA(2, 0, 0)
MAPE: 6.26%
MAE: 49191.98
==================================================
ARIMA(2, 0, 1)
MAPE: 5.76%
MAE: 45653.73
==================================================
ARIMA(2, 0, 2)
MAPE: 5.69%
MAE: 44918.36
==================================================
ARIMA(2, 0, 3)
MAPE: 5.27%
MAE: 41968.89
==================================================
ARIMA(2, 0, 4)
MAPE: 5.2%
MAE: 40472.76
==================================================
ARIMA(2, 1, 0)
MAPE: 7.97%
MAE: 59808.26
==================================================
ARIMA(2, 1, 1)
MAPE: 9.59%
MAE: 72531.76
==================================================
ARIMA(2, 1, 2)
MAPE: 9.43%
MAE: 71543.78
==================================================
ARIMA(2, 1, 3)
MAPE: 10.43%
MAE: 79288.69
==================================================
ARIMA(2, 1, 4)
MAPE: 11.43%
MAE: 85055.36
==================================================
ARIMA(3, 0, 0)
MAPE: 5.52%
MAE: 44070.55
==================================================
ARIMA(3, 0, 1)
MAPE: 5.82%
MAE: 45865.98
==================================================
ARIMA(3, 0, 2)
MAPE: 5.62%
MAE: 44476.87
==================================================
ARIMA(3, 0, 3)
MAPE: 6.59%
MAE: 51560.24
==================================================
ARIMA(3, 0, 4)
MAPE: 11.25%
MAE: 82319.75
==================================================
ARIMA(3, 1, 0)
MAPE: 9.69%
MAE: 73097.22
==================================================
ARIMA(3, 1, 1)
MAPE: 11.11%
MAE: 82902.1
==================================================
ARIMA(3, 1, 2)
MAPE: 12.2%
MAE: 90097.9
==================================================
ARIMA(3, 1, 3)
MAPE: 12.36%
MAE: 90831.04
==================================================
ARIMA(3, 1, 4)
MAPE: 12.0%
MAE: 88374.68
==================================================
ARIMA(4, 0, 0)
MAPE: 6.31%
MAE: 49380.05
==================================================
ARIMA(4, 0, 1)
MAPE: 6.12%
MAE: 47827.17
==================================================
ARIMA(4, 0, 2)
MAPE: 5.68%
MAE: 44855.41
==================================================
ARIMA(4, 0, 3)
MAPE: 5.27%
MAE: 41916.09
==================================================
ARIMA(4, 0, 4)
MAPE: 8.35%
MAE: 63223.36
==================================================
ARIMA(4, 1, 0)
MAPE: 13.07%
MAE: 96745.88
==================================================
ARIMA(4, 1, 1)
MAPE: 12.8%
MAE: 95042.0
==================================================
ARIMA(4, 1, 2)
MAPE: 11.49%
MAE: 84101.01
==================================================
ARIMA(4, 1, 3)
MAPE: 12.6%
MAE: 93184.41
==================================================
ARIMA(4, 1, 4)
MAPE: 17.21%
MAE: 124992.75
==================================================

Best parameter, lowest MAPE, and lowest MAE for KALIMANTAN BARAT¶

In [111]:
print(f"Best parameters model for KALIMANTAN BARAT:", best_param_kalimantan_barat)
print(f"with the lowest MAPE: {lowest_mape_kalimantan_barat.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_kalimantan_barat.round(2)}")
Best parameters model for KALIMANTAN BARAT: (2, 0, 4)
with the lowest MAPE: 5.2%
with the lowest MAE: 40472.76

Make prediction vs actual plot for KALIMANTAN BARAT¶

In [112]:
plot_predictions_vs_actual(prediction_series=prediction_kalimantan_barat, actual_series=test_kalimantan_barat)
No description has been provided for this image

KALIMANTAN TENGAH (21)¶

Split KALIMANTAN TENGAH dataset¶

In [113]:
train_kalimantan_tengah = training_data["KALIMANTAN TENGAH"]
test_kalimantan_tengah = test_data["KALIMANTAN TENGAH"]

Make prediction for KALIMANTAN TENGAH¶

In [114]:
best_param_kalimantan_tengah, lowest_mape_kalimantan_tengah, lowest_mae_kalimantan_tengah, prediction_kalimantan_tengah = make_arima_prediction(train_kalimantan_tengah, test_kalimantan_tengah)

all_provinces_predictions['KALIMANTAN TENGAH'] = prediction_kalimantan_tengah
ARIMA(0, 0, 0)
MAPE: 49.81%
MAE: 277107.66
==================================================
ARIMA(0, 0, 1)
MAPE: 42.94%
MAE: 236349.39
==================================================
ARIMA(0, 0, 2)
MAPE: 35.39%
MAE: 195300.07
==================================================
ARIMA(0, 0, 3)
MAPE: 30.77%
MAE: 173261.59
==================================================
ARIMA(0, 0, 4)
MAPE: 34.56%
MAE: 186854.54
==================================================
ARIMA(0, 1, 0)
MAPE: 58.43%
MAE: 315518.12
==================================================
ARIMA(0, 1, 1)
MAPE: 19.49%
MAE: 102365.62
==================================================
ARIMA(0, 1, 2)
MAPE: 21.84%
MAE: 114923.3
==================================================
ARIMA(0, 1, 3)
MAPE: 20.41%
MAE: 107077.26
==================================================
ARIMA(0, 1, 4)
MAPE: 20.52%
MAE: 107696.41
==================================================
ARIMA(1, 0, 0)
MAPE: 20.31%
MAE: 110899.48
==================================================
ARIMA(1, 0, 1)
MAPE: 9.98%
MAE: 55401.28
==================================================
ARIMA(1, 0, 2)
MAPE: 10.21%
MAE: 55903.46
==================================================
ARIMA(1, 0, 3)
MAPE: 10.31%
MAE: 56588.66
==================================================
ARIMA(1, 0, 4)
MAPE: 10.26%
MAE: 55951.32
==================================================
ARIMA(1, 1, 0)
MAPE: 28.58%
MAE: 151407.8
==================================================
ARIMA(1, 1, 1)
MAPE: 22.57%
MAE: 118778.12
==================================================
ARIMA(1, 1, 2)
MAPE: 15.39%
MAE: 81481.56
==================================================
ARIMA(1, 1, 3)
MAPE: 20.43%
MAE: 107173.65
==================================================
ARIMA(1, 1, 4)
MAPE: 21.78%
MAE: 114391.3
==================================================
ARIMA(2, 0, 0)
MAPE: 11.63%
MAE: 62965.74
==================================================
ARIMA(2, 0, 1)
MAPE: 10.56%
MAE: 57621.84
==================================================
ARIMA(2, 0, 2)
MAPE: 9.89%
MAE: 54191.79
==================================================
ARIMA(2, 0, 3)
MAPE: 9.65%
MAE: 52804.32
==================================================
ARIMA(2, 0, 4)
MAPE: 11.2%
MAE: 61087.64
==================================================
ARIMA(2, 1, 0)
MAPE: 24.73%
MAE: 130481.7
==================================================
ARIMA(2, 1, 1)
MAPE: 21.11%
MAE: 110917.25
==================================================
ARIMA(2, 1, 2)
MAPE: 20.89%
MAE: 109782.06
==================================================
ARIMA(2, 1, 3)
MAPE: 21.35%
MAE: 111890.26
==================================================
ARIMA(2, 1, 4)
MAPE: 21.26%
MAE: 110586.33
==================================================
ARIMA(3, 0, 0)
MAPE: 10.84%
MAE: 59005.12
==================================================
ARIMA(3, 0, 1)
MAPE: 10.46%
MAE: 57140.35
==================================================
ARIMA(3, 0, 2)
MAPE: 9.77%
MAE: 53439.75
==================================================
ARIMA(3, 0, 3)
MAPE: 13.42%
MAE: 73778.42
==================================================
ARIMA(3, 0, 4)
MAPE: 7.5%
MAE: 44144.33
==================================================
ARIMA(3, 1, 0)
MAPE: 21.85%
MAE: 115073.52
==================================================
ARIMA(3, 1, 1)
MAPE: 20.43%
MAE: 107270.53
==================================================
ARIMA(3, 1, 2)
MAPE: 19.48%
MAE: 101388.78
==================================================
ARIMA(3, 1, 3)
MAPE: 18.56%
MAE: 97578.69
==================================================
ARIMA(3, 1, 4)
MAPE: 21.24%
MAE: 111309.34
==================================================
ARIMA(4, 0, 0)
MAPE: 10.4%
MAE: 56781.05
==================================================
ARIMA(4, 0, 1)
MAPE: 10.36%
MAE: 56562.29
==================================================
ARIMA(4, 0, 2)
MAPE: 11.65%
MAE: 63184.74
==================================================
ARIMA(4, 0, 3)
MAPE: 14.7%
MAE: 81710.56
==================================================
ARIMA(4, 0, 4)
MAPE: 6.44%
MAE: 37540.38
==================================================
ARIMA(4, 1, 0)
MAPE: 19.74%
MAE: 103751.13
==================================================
ARIMA(4, 1, 1)
MAPE: 20.75%
MAE: 108723.1
==================================================
ARIMA(4, 1, 2)
MAPE: 19.8%
MAE: 103008.55
==================================================
ARIMA(4, 1, 3)
MAPE: 19.63%
MAE: 102367.03
==================================================
ARIMA(4, 1, 4)
MAPE: 22.66%
MAE: 118477.26
==================================================

Best parameter, lowest MAPE, and lowest MAE for KALIMANTAN TENGAH¶

In [115]:
print(f"Best parameters model for KALIMANTAN TENGAH:", best_param_kalimantan_tengah)
print(f"with the lowest MAPE: {lowest_mape_kalimantan_tengah.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_kalimantan_tengah.round(2)}")
Best parameters model for KALIMANTAN TENGAH: (4, 0, 4)
with the lowest MAPE: 6.44%
with the lowest MAE: 37540.38

Make prediction vs actual plot for KALIMANTAN TENGAH¶

In [116]:
plot_predictions_vs_actual(prediction_series=prediction_kalimantan_tengah, actual_series=test_kalimantan_tengah)
No description has been provided for this image

KALIMANTAN SELATAN (22)¶

Split KALIMANTAN SELATAN dataset¶

In [117]:
train_kalimantan_selatan = training_data["KALIMANTAN SELATAN"]
test_kalimantan_selatan = test_data["KALIMANTAN SELATAN"]

Make prediction for KALIMANTAN SELATAN¶

In [118]:
best_param_kalimantan_selatan, lowest_mape_kalimantan_selatan, lowest_mae_kalimantan_selatan, prediction_kalimantan_selatan = make_arima_prediction(train_kalimantan_selatan, test_kalimantan_selatan)

all_provinces_predictions['KALIMANTAN SELATAN'] = prediction_kalimantan_selatan
ARIMA(0, 0, 0)
MAPE: 42.33%
MAE: 395138.67
==================================================
ARIMA(0, 0, 1)
MAPE: 34.54%
MAE: 311672.9
==================================================
ARIMA(0, 0, 2)
MAPE: 42.02%
MAE: 372109.71
==================================================
ARIMA(0, 0, 3)
MAPE: 35.46%
MAE: 316346.45
==================================================
ARIMA(0, 0, 4)
MAPE: 39.86%
MAE: 344066.67
==================================================
ARIMA(0, 1, 0)
MAPE: 98.55%
MAE: 868808.76
==================================================
ARIMA(0, 1, 1)
MAPE: 34.95%
MAE: 298025.47
==================================================
ARIMA(0, 1, 2)
MAPE: 58.15%
MAE: 501467.83
==================================================
ARIMA(0, 1, 3)
MAPE: 44.39%
MAE: 378748.79
==================================================
ARIMA(0, 1, 4)
MAPE: 44.38%
MAE: 378588.65
==================================================
ARIMA(1, 0, 0)
MAPE: 23.14%
MAE: 215045.16
==================================================
ARIMA(1, 0, 1)
MAPE: 11.45%
MAE: 100168.1
==================================================
ARIMA(1, 0, 2)
MAPE: 18.44%
MAE: 158139.41
==================================================
ARIMA(1, 0, 3)
MAPE: 20.36%
MAE: 179583.76
==================================================
ARIMA(1, 0, 4)
MAPE: 23.71%
MAE: 200480.42
==================================================
ARIMA(1, 1, 0)
MAPE: 50.9%
MAE: 436394.44
==================================================
ARIMA(1, 1, 1)
MAPE: 55.02%
MAE: 473599.0
==================================================
ARIMA(1, 1, 2)
MAPE: 68.96%
MAE: 596469.06
==================================================
ARIMA(1, 1, 3)
MAPE: 44.38%
MAE: 378628.38
==================================================
ARIMA(1, 1, 4)
MAPE: 56.1%
MAE: 486345.33
==================================================
ARIMA(2, 0, 0)
MAPE: 16.58%
MAE: 144037.13
==================================================
ARIMA(2, 0, 1)
MAPE: 16.71%
MAE: 147625.93
==================================================
ARIMA(2, 0, 2)
MAPE: 20.43%
MAE: 175991.48
==================================================
ARIMA(2, 0, 3)
MAPE: 20.49%
MAE: 180267.1
==================================================
ARIMA(2, 0, 4)
MAPE: 30.6%
MAE: 267393.07
==================================================
ARIMA(2, 1, 0)
MAPE: 56.4%
MAE: 485823.65
==================================================
ARIMA(2, 1, 1)
MAPE: 49.75%
MAE: 421810.04
==================================================
ARIMA(2, 1, 2)
MAPE: 106.92%
MAE: 927556.73
==================================================
ARIMA(2, 1, 3)
MAPE: 36.78%
MAE: 310401.14
==================================================
ARIMA(2, 1, 4)
MAPE: 52.68%
MAE: 447868.58
==================================================
ARIMA(3, 0, 0)
MAPE: 17.69%
MAE: 157344.08
==================================================
ARIMA(3, 0, 1)
MAPE: 22.63%
MAE: 201404.73
==================================================
ARIMA(3, 0, 2)
MAPE: 33.2%
MAE: 285224.64
==================================================
ARIMA(3, 0, 3)
MAPE: 14.71%
MAE: 129775.82
==================================================
ARIMA(3, 0, 4)
MAPE: 31.86%
MAE: 280274.19
==================================================
ARIMA(3, 1, 0)
MAPE: 56.66%
MAE: 488079.94
==================================================
ARIMA(3, 1, 1)
MAPE: 35.06%
MAE: 298411.28
==================================================
ARIMA(3, 1, 2)
MAPE: 87.27%
MAE: 755316.3
==================================================
ARIMA(3, 1, 3)
MAPE: 52.43%
MAE: 446816.28
==================================================
ARIMA(3, 1, 4)
MAPE: 51.59%
MAE: 439888.03
==================================================
ARIMA(4, 0, 0)
MAPE: 28.04%
MAE: 242707.58
==================================================
ARIMA(4, 0, 1)
MAPE: 28.7%
MAE: 249462.25
==================================================
ARIMA(4, 0, 2)
MAPE: 33.74%
MAE: 290159.31
==================================================
ARIMA(4, 0, 3)
MAPE: 30.48%
MAE: 262313.58
==================================================
ARIMA(4, 0, 4)
MAPE: 26.05%
MAE: 232914.77
==================================================
ARIMA(4, 1, 0)
MAPE: 34.95%
MAE: 298052.07
==================================================
ARIMA(4, 1, 1)
MAPE: 36.16%
MAE: 307630.59
==================================================
ARIMA(4, 1, 2)
MAPE: 66.34%
MAE: 568328.65
==================================================
ARIMA(4, 1, 3)
MAPE: 54.59%
MAE: 464662.13
==================================================
ARIMA(4, 1, 4)
MAPE: 53.49%
MAE: 455164.67
==================================================

Best parameter, lowest MAPE, and lowest MAE for KALIMANTAN SELATAN¶

In [119]:
print(f"Best parameters model for KALIMANTAN SELATAN:", best_param_kalimantan_selatan)
print(f"with the lowest MAPE: {lowest_mape_kalimantan_selatan.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_kalimantan_selatan.round(2)}")
Best parameters model for KALIMANTAN SELATAN: (1, 0, 1)
with the lowest MAPE: 11.45%
with the lowest MAE: 100168.1

Make prediction vs actual plot for KALIMANTAN SELATAN¶

In [120]:
plot_predictions_vs_actual(prediction_series=prediction_kalimantan_selatan, actual_series=test_kalimantan_selatan)
No description has been provided for this image

KALIMANTAN TIMUR (23)¶

Split KALIMANTAN TIMUR dataset¶

In [121]:
train_kalimantan_timur = training_data["KALIMANTAN TIMUR"]
test_kalimantan_timur = test_data["KALIMANTAN TIMUR"]

Make prediction for KALIMANTAN TIMUR¶

In [122]:
best_param_kalimantan_timur, lowest_mape_kalimantan_timur, lowest_mae_kalimantan_timur, prediction_kalimantan_timur = make_arima_prediction(train_kalimantan_timur, test_kalimantan_timur)

all_provinces_predictions['KALIMANTAN TIMUR'] = prediction_kalimantan_timur
ARIMA(0, 0, 0)
MAPE: 50.48%
MAE: 482114.7
==================================================
ARIMA(0, 0, 1)
MAPE: 41.17%
MAE: 395359.31
==================================================
ARIMA(0, 0, 2)
MAPE: 35.86%
MAE: 347239.21
==================================================
ARIMA(0, 0, 3)
MAPE: 28.79%
MAE: 285502.7
==================================================
ARIMA(0, 0, 4)
MAPE: 27.24%
MAE: 262962.62
==================================================
ARIMA(0, 1, 0)
MAPE: 25.84%
MAE: 233391.45
==================================================
ARIMA(0, 1, 1)
MAPE: 12.62%
MAE: 118145.73
==================================================
ARIMA(0, 1, 2)
MAPE: 14.44%
MAE: 133245.17
==================================================
ARIMA(0, 1, 3)
MAPE: 14.01%
MAE: 130258.02
==================================================
ARIMA(0, 1, 4)
MAPE: 13.96%
MAE: 129805.63
==================================================
ARIMA(1, 0, 0)
MAPE: 13.65%
MAE: 130332.62
==================================================
ARIMA(1, 0, 1)
MAPE: 9.61%
MAE: 95035.86
==================================================
ARIMA(1, 0, 2)
MAPE: 12.26%
MAE: 116971.91
==================================================
ARIMA(1, 0, 3)
MAPE: 11.7%
MAE: 112575.54
==================================================
ARIMA(1, 0, 4)
MAPE: 14.52%
MAE: 137412.85
==================================================
ARIMA(1, 1, 0)
MAPE: 14.34%
MAE: 132507.81
==================================================
ARIMA(1, 1, 1)
MAPE: 14.75%
MAE: 135928.7
==================================================
ARIMA(1, 1, 2)
MAPE: 14.51%
MAE: 133894.58
==================================================
ARIMA(1, 1, 3)
MAPE: 14.0%
MAE: 130204.26
==================================================
ARIMA(1, 1, 4)
MAPE: 14.68%
MAE: 135665.11
==================================================
ARIMA(2, 0, 0)
MAPE: 9.58%
MAE: 94534.16
==================================================
ARIMA(2, 0, 1)
MAPE: 10.32%
MAE: 100729.52
==================================================
ARIMA(2, 0, 2)
MAPE: 12.03%
MAE: 115158.15
==================================================
ARIMA(2, 0, 3)
MAPE: 12.0%
MAE: 114690.77
==================================================
ARIMA(2, 0, 4)
MAPE: 14.48%
MAE: 137063.36
==================================================
ARIMA(2, 1, 0)
MAPE: 14.71%
MAE: 135618.89
==================================================
ARIMA(2, 1, 1)
MAPE: 14.46%
MAE: 134317.88
==================================================
ARIMA(2, 1, 2)
MAPE: 14.11%
MAE: 130608.15
==================================================
ARIMA(2, 1, 3)
MAPE: 17.92%
MAE: 166754.51
==================================================
ARIMA(2, 1, 4)
MAPE: 13.73%
MAE: 128365.36
==================================================
ARIMA(3, 0, 0)
MAPE: 11.24%
MAE: 108498.24
==================================================
ARIMA(3, 0, 1)
MAPE: 9.69%
MAE: 99254.55
==================================================
ARIMA(3, 0, 2)
MAPE: 13.68%
MAE: 129367.1
==================================================
ARIMA(3, 0, 3)
MAPE: 11.81%
MAE: 115207.52
==================================================
ARIMA(3, 0, 4)
MAPE: 12.33%
MAE: 120375.92
==================================================
ARIMA(3, 1, 0)
MAPE: 14.12%
MAE: 130716.15
==================================================
ARIMA(3, 1, 1)
MAPE: 13.81%
MAE: 128204.32
==================================================
ARIMA(3, 1, 2)
MAPE: 10.17%
MAE: 98047.86
==================================================
ARIMA(3, 1, 3)
MAPE: 17.87%
MAE: 166148.97
==================================================
ARIMA(3, 1, 4)
MAPE: 14.32%
MAE: 133078.61
==================================================
ARIMA(4, 0, 0)
MAPE: 11.67%
MAE: 111950.29
==================================================
ARIMA(4, 0, 1)
MAPE: 11.69%
MAE: 112258.54
==================================================
ARIMA(4, 0, 2)
MAPE: 11.7%
MAE: 114204.97
==================================================
ARIMA(4, 0, 3)
MAPE: 10.55%
MAE: 103426.77
==================================================
ARIMA(4, 0, 4)
MAPE: 13.64%
MAE: 132912.04
==================================================
ARIMA(4, 1, 0)
MAPE: 13.46%
MAE: 126548.25
==================================================
ARIMA(4, 1, 1)
MAPE: 14.7%
MAE: 137061.56
==================================================
ARIMA(4, 1, 2)
MAPE: 17.8%
MAE: 164956.22
==================================================
ARIMA(4, 1, 3)
MAPE: 20.34%
MAE: 187564.83
==================================================
ARIMA(4, 1, 4)
MAPE: 22.25%
MAE: 204748.32
==================================================

Best parameter, lowest MAPE, and lowest MAE for KALIMANTAN TIMUR¶

In [123]:
print(f"Best parameters model for KALIMANTAN TIMUR:", best_param_kalimantan_timur)
print(f"with the lowest MAPE: {lowest_mape_kalimantan_timur.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_kalimantan_timur.round(2)}")
Best parameters model for KALIMANTAN TIMUR: (2, 0, 0)
with the lowest MAPE: 9.58%
with the lowest MAE: 94534.16

Make prediction vs actual plot for KALIMANTAN TIMUR¶

In [124]:
plot_predictions_vs_actual(prediction_series=prediction_kalimantan_timur, actual_series=test_kalimantan_timur)
No description has been provided for this image

KALIMANTAN UTARA (24)¶

Split KALIMANTAN UTARA dataset¶

In [125]:
train_kalimantan_utara = training_data["KALIMANTAN UTARA"]
test_kalimantan_utara = test_data["KALIMANTAN UTARA"]

Make prediction for KALIMANTAN UTARA¶

In [126]:
best_param_kalimantan_utara, lowest_mape_kalimantan_utara, lowest_mae_kalimantan_utara, prediction_kalimantan_utara = make_arima_prediction(train_kalimantan_utara, test_kalimantan_utara)

all_provinces_predictions['KALIMANTAN UTARA'] = prediction_kalimantan_utara
ARIMA(0, 0, 0)
MAPE: 34.6%
MAE: 27730.23
==================================================
ARIMA(0, 0, 1)
MAPE: 29.56%
MAE: 23508.88
==================================================
ARIMA(0, 0, 2)
MAPE: 25.98%
MAE: 20855.91
==================================================
ARIMA(0, 0, 3)
MAPE: 22.49%
MAE: 18335.55
==================================================
ARIMA(0, 0, 4)
MAPE: 19.87%
MAE: 15829.11
==================================================
ARIMA(0, 1, 0)
MAPE: 28.24%
MAE: 21795.34
==================================================
ARIMA(0, 1, 1)
MAPE: 10.88%
MAE: 8251.32
==================================================
ARIMA(0, 1, 2)
MAPE: 13.42%
MAE: 10064.55
==================================================
ARIMA(0, 1, 3)
MAPE: 12.65%
MAE: 9491.66
==================================================
ARIMA(0, 1, 4)
MAPE: 13.51%
MAE: 10154.44
==================================================
ARIMA(1, 0, 0)
MAPE: 16.7%
MAE: 12714.29
==================================================
ARIMA(1, 0, 1)
MAPE: 13.09%
MAE: 9949.54
==================================================
ARIMA(1, 0, 2)
MAPE: 13.65%
MAE: 10316.06
==================================================
ARIMA(1, 0, 3)
MAPE: 13.93%
MAE: 10508.63
==================================================
ARIMA(1, 0, 4)
MAPE: 14.43%
MAE: 10688.71
==================================================
ARIMA(1, 1, 0)
MAPE: 12.1%
MAE: 9091.7
==================================================
ARIMA(1, 1, 1)
MAPE: 12.77%
MAE: 9575.26
==================================================
ARIMA(1, 1, 2)
MAPE: 12.46%
MAE: 9346.83
==================================================
ARIMA(1, 1, 3)
MAPE: 12.4%
MAE: 9294.01
==================================================
ARIMA(1, 1, 4)
MAPE: 13.99%
MAE: 10504.24
==================================================
ARIMA(2, 0, 0)
MAPE: 12.82%
MAE: 9724.65
==================================================
ARIMA(2, 0, 1)
MAPE: 13.36%
MAE: 10100.55
==================================================
ARIMA(2, 0, 2)
MAPE: 13.13%
MAE: 9933.06
==================================================
ARIMA(2, 0, 3)
MAPE: 13.21%
MAE: 9945.95
==================================================
ARIMA(2, 0, 4)
MAPE: 14.85%
MAE: 10950.92
==================================================
ARIMA(2, 1, 0)
MAPE: 12.77%
MAE: 9574.16
==================================================
ARIMA(2, 1, 1)
MAPE: 7.31%
MAE: 5699.95
==================================================
ARIMA(2, 1, 2)
MAPE: 12.48%
MAE: 9360.03
==================================================
ARIMA(2, 1, 3)
MAPE: 13.46%
MAE: 10104.12
==================================================
ARIMA(2, 1, 4)
MAPE: 11.9%
MAE: 8912.78
==================================================
ARIMA(3, 0, 0)
MAPE: 13.79%
MAE: 10419.95
==================================================
ARIMA(3, 0, 1)
MAPE: 13.21%
MAE: 9986.08
==================================================
ARIMA(3, 0, 2)
MAPE: 13.21%
MAE: 9988.43
==================================================
ARIMA(3, 0, 3)
MAPE: 13.03%
MAE: 9821.69
==================================================
ARIMA(3, 0, 4)
MAPE: 16.04%
MAE: 11934.04
==================================================
ARIMA(3, 1, 0)
MAPE: 12.58%
MAE: 9434.52
==================================================
ARIMA(3, 1, 1)
MAPE: 12.71%
MAE: 9531.35
==================================================
ARIMA(3, 1, 2)
MAPE: 13.36%
MAE: 10025.32
==================================================
ARIMA(3, 1, 3)
MAPE: 9.9%
MAE: 7476.68
==================================================
ARIMA(3, 1, 4)
MAPE: 16.67%
MAE: 12530.85
==================================================
ARIMA(4, 0, 0)
MAPE: 14.05%
MAE: 10600.32
==================================================
ARIMA(4, 0, 1)
MAPE: 13.46%
MAE: 10173.51
==================================================
ARIMA(4, 0, 2)
MAPE: 13.55%
MAE: 10180.15
==================================================
ARIMA(4, 0, 3)
MAPE: 20.16%
MAE: 15200.83
==================================================
ARIMA(4, 0, 4)
MAPE: 14.43%
MAE: 10810.59
==================================================
ARIMA(4, 1, 0)
MAPE: 13.38%
MAE: 10056.12
==================================================
ARIMA(4, 1, 1)
MAPE: 13.82%
MAE: 10386.14
==================================================
ARIMA(4, 1, 2)
MAPE: 18.09%
MAE: 13661.68
==================================================
ARIMA(4, 1, 3)
MAPE: 6.67%
MAE: 5314.59
==================================================
ARIMA(4, 1, 4)
MAPE: 22.74%
MAE: 17333.26
==================================================

Best parameter, lowest MAPE, and lowest MAE for KALIMANTAN UTARA¶

In [127]:
print(f"Best parameters model for KALIMANTAN UTARA:", best_param_kalimantan_utara)
print(f"with the lowest MAPE: {lowest_mape_kalimantan_utara.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_kalimantan_utara.round(2)}")
Best parameters model for KALIMANTAN UTARA: (4, 1, 3)
with the lowest MAPE: 6.67%
with the lowest MAE: 5314.59

Make prediction vs actual plot for KALIMANTAN UTARA¶

In [128]:
plot_predictions_vs_actual(prediction_series=prediction_kalimantan_utara, actual_series=test_kalimantan_utara)
No description has been provided for this image

SULAWESI UTARA (25)¶

Split SULAWESI UTARA dataset¶

In [129]:
train_sulawesi_utara = training_data["SULAWESI UTARA"]
test_sulawesi_utara = test_data["SULAWESI UTARA"]

Make prediction for SULAWESI UTARA¶

In [130]:
best_param_sulawesi_utara, lowest_mape_sulawesi_utara, lowest_mae_sulawesi_utara, prediction_sulawesi_utara = make_arima_prediction(train_sulawesi_utara, test_sulawesi_utara)

all_provinces_predictions['SULAWESI UTARA'] = prediction_sulawesi_utara
ARIMA(0, 0, 0)
MAPE: 46.09%
MAE: 312112.71
==================================================
ARIMA(0, 0, 1)
MAPE: 42.56%
MAE: 287236.94
==================================================
ARIMA(0, 0, 2)
MAPE: 38.43%
MAE: 261786.85
==================================================
ARIMA(0, 0, 3)
MAPE: 34.17%
MAE: 234157.77
==================================================
ARIMA(0, 0, 4)
MAPE: 30.01%
MAE: 205592.87
==================================================
ARIMA(0, 1, 0)
MAPE: 7.41%
MAE: 49020.58
==================================================
ARIMA(0, 1, 1)
MAPE: 7.4%
MAE: 52457.28
==================================================
ARIMA(0, 1, 2)
MAPE: 5.54%
MAE: 39881.49
==================================================
ARIMA(0, 1, 3)
MAPE: 10.1%
MAE: 71008.21
==================================================
ARIMA(0, 1, 4)
MAPE: 12.71%
MAE: 89325.72
==================================================
ARIMA(1, 0, 0)
MAPE: 20.15%
MAE: 138124.29
==================================================
ARIMA(1, 0, 1)
MAPE: 19.61%
MAE: 134442.43
==================================================
ARIMA(1, 0, 2)
MAPE: 19.81%
MAE: 136178.23
==================================================
ARIMA(1, 0, 3)
MAPE: 19.85%
MAE: 136385.27
==================================================
ARIMA(1, 0, 4)
MAPE: 19.81%
MAE: 136770.98
==================================================
ARIMA(1, 1, 0)
MAPE: 5.84%
MAE: 42011.17
==================================================
ARIMA(1, 1, 1)
MAPE: 5.83%
MAE: 41896.46
==================================================
ARIMA(1, 1, 2)
MAPE: 5.75%
MAE: 41230.83
==================================================
ARIMA(1, 1, 3)
MAPE: 13.01%
MAE: 91104.94
==================================================
ARIMA(1, 1, 4)
MAPE: 10.8%
MAE: 76858.48
==================================================
ARIMA(2, 0, 0)
MAPE: 19.52%
MAE: 133827.03
==================================================
ARIMA(2, 0, 1)
MAPE: 19.57%
MAE: 134248.33
==================================================
ARIMA(2, 0, 2)
MAPE: 19.75%
MAE: 135747.38
==================================================
ARIMA(2, 0, 3)
MAPE: 19.81%
MAE: 136409.18
==================================================
ARIMA(2, 0, 4)
MAPE: 19.78%
MAE: 136693.28
==================================================
ARIMA(2, 1, 0)
MAPE: 5.81%
MAE: 41802.26
==================================================
ARIMA(2, 1, 1)
MAPE: 12.56%
MAE: 87422.33
==================================================
ARIMA(2, 1, 2)
MAPE: 12.55%
MAE: 87419.18
==================================================
ARIMA(2, 1, 3)
MAPE: 13.08%
MAE: 91569.11
==================================================
ARIMA(2, 1, 4)
MAPE: 12.77%
MAE: 90007.64
==================================================
ARIMA(3, 0, 0)
MAPE: 19.53%
MAE: 134062.49
==================================================
ARIMA(3, 0, 1)
MAPE: 19.58%
MAE: 134389.68
==================================================
ARIMA(3, 0, 2)
MAPE: 20.39%
MAE: 140460.76
==================================================
ARIMA(3, 0, 3)
MAPE: 21.91%
MAE: 150580.89
==================================================
ARIMA(3, 0, 4)
MAPE: 19.75%
MAE: 136308.47
==================================================
ARIMA(3, 1, 0)
MAPE: 5.74%
MAE: 41188.77
==================================================
ARIMA(3, 1, 1)
MAPE: 12.7%
MAE: 88551.18
==================================================
ARIMA(3, 1, 2)
MAPE: 20.7%
MAE: 142511.5
==================================================
ARIMA(3, 1, 3)
MAPE: 11.54%
MAE: 81196.42
==================================================
ARIMA(3, 1, 4)
MAPE: 10.84%
MAE: 76399.91
==================================================
ARIMA(4, 0, 0)
MAPE: 19.6%
MAE: 134569.19
==================================================
ARIMA(4, 0, 1)
MAPE: 19.7%
MAE: 135463.68
==================================================
ARIMA(4, 0, 2)
MAPE: 20.26%
MAE: 139567.77
==================================================
ARIMA(4, 0, 3)
MAPE: 20.14%
MAE: 138998.18
==================================================
ARIMA(4, 0, 4)
MAPE: 21.4%
MAE: 147273.87
==================================================
ARIMA(4, 1, 0)
MAPE: 9.18%
MAE: 65572.59
==================================================
ARIMA(4, 1, 1)
MAPE: 9.46%
MAE: 67484.85
==================================================
ARIMA(4, 1, 2)
MAPE: 9.13%
MAE: 65272.09
==================================================
ARIMA(4, 1, 3)
MAPE: 11.2%
MAE: 78795.09
==================================================
ARIMA(4, 1, 4)
MAPE: 7.52%
MAE: 53833.82
==================================================

Best parameter, lowest MAPE, and lowest MAE for SULAWESI UTARA¶

In [131]:
print(f"Best parameters model for SULAWESI UTARA:", best_param_sulawesi_utara)
print(f"with the lowest MAPE: {lowest_mape_sulawesi_utara.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_sulawesi_utara.round(2)}")
Best parameters model for SULAWESI UTARA: (0, 1, 2)
with the lowest MAPE: 5.54%
with the lowest MAE: 39881.49

Make prediction vs actual plot for SULAWESI UTARA¶

In [132]:
plot_predictions_vs_actual(prediction_series=prediction_sulawesi_utara, actual_series=test_sulawesi_utara)
No description has been provided for this image

SULAWESI TENGAH (26)¶

Split SULAWESI TENGAH dataset¶

In [133]:
train_sulawesi_tengah = training_data["SULAWESI TENGAH"]
test_sulawesi_tengah = test_data["SULAWESI TENGAH"]

Make prediction for SULAWESI TENGAH¶

In [134]:
best_param_sulawesi_tengah, lowest_mape_sulawesi_tengah, lowest_mae_sulawesi_tengah, prediction_sulawesi_tengah = make_arima_prediction(train_sulawesi_tengah, test_sulawesi_tengah)

all_provinces_predictions['SULAWESI TENGAH'] = prediction_sulawesi_tengah
ARIMA(0, 0, 0)
MAPE: 54.06%
MAE: 475493.73
==================================================
ARIMA(0, 0, 1)
MAPE: 45.13%
MAE: 392386.93
==================================================
ARIMA(0, 0, 2)
MAPE: 35.44%
MAE: 310463.85
==================================================
ARIMA(0, 0, 3)
MAPE: 34.16%
MAE: 301609.59
==================================================
ARIMA(0, 0, 4)
MAPE: 27.2%
MAE: 233919.71
==================================================
ARIMA(0, 1, 0)
MAPE: 17.66%
MAE: 145961.5
==================================================
ARIMA(0, 1, 1)
MAPE: 13.04%
MAE: 109561.26
==================================================
ARIMA(0, 1, 2)
MAPE: 21.8%
MAE: 176501.38
==================================================
ARIMA(0, 1, 3)
MAPE: 9.91%
MAE: 92763.33
==================================================
ARIMA(0, 1, 4)
MAPE: 9.87%
MAE: 92466.88
==================================================
ARIMA(1, 0, 0)
MAPE: 11.26%
MAE: 102400.55
==================================================
ARIMA(1, 0, 1)
MAPE: 11.78%
MAE: 106908.77
==================================================
ARIMA(1, 0, 2)
MAPE: 15.95%
MAE: 140550.97
==================================================
ARIMA(1, 0, 3)
MAPE: 15.88%
MAE: 141959.67
==================================================
ARIMA(1, 0, 4)
MAPE: 15.91%
MAE: 134319.78
==================================================
ARIMA(1, 1, 0)
MAPE: 12.53%
MAE: 105887.9
==================================================
ARIMA(1, 1, 1)
MAPE: 13.47%
MAE: 113251.85
==================================================
ARIMA(1, 1, 2)
MAPE: 20.2%
MAE: 163498.29
==================================================
ARIMA(1, 1, 3)
MAPE: 9.92%
MAE: 89722.52
==================================================
ARIMA(1, 1, 4)
MAPE: 10.03%
MAE: 90383.86
==================================================
ARIMA(2, 0, 0)
MAPE: 12.62%
MAE: 113932.28
==================================================
ARIMA(2, 0, 1)
MAPE: 11.9%
MAE: 108216.64
==================================================
ARIMA(2, 0, 2)
MAPE: 15.37%
MAE: 135813.31
==================================================
ARIMA(2, 0, 3)
MAPE: 15.34%
MAE: 135802.28
==================================================
ARIMA(2, 0, 4)
MAPE: 17.25%
MAE: 145131.37
==================================================
ARIMA(2, 1, 0)
MAPE: 19.77%
MAE: 159401.25
==================================================
ARIMA(2, 1, 1)
MAPE: 19.08%
MAE: 154354.93
==================================================
ARIMA(2, 1, 2)
MAPE: 14.41%
MAE: 120623.51
==================================================
ARIMA(2, 1, 3)
MAPE: 9.43%
MAE: 85834.74
==================================================
ARIMA(2, 1, 4)
MAPE: 9.05%
MAE: 82997.99
==================================================
ARIMA(3, 0, 0)
MAPE: 15.03%
MAE: 130491.13
==================================================
ARIMA(3, 0, 1)
MAPE: 15.56%
MAE: 135759.22
==================================================
ARIMA(3, 0, 2)
MAPE: 14.91%
MAE: 131101.92
==================================================
ARIMA(3, 0, 3)
MAPE: 15.09%
MAE: 133420.55
==================================================
ARIMA(3, 0, 4)
MAPE: 15.15%
MAE: 128491.68
==================================================
ARIMA(3, 1, 0)
MAPE: 15.81%
MAE: 131181.37
==================================================
ARIMA(3, 1, 1)
MAPE: 11.64%
MAE: 102070.78
==================================================
ARIMA(3, 1, 2)
MAPE: 14.21%
MAE: 118013.74
==================================================
ARIMA(3, 1, 3)
MAPE: 15.76%
MAE: 128876.41
==================================================
ARIMA(3, 1, 4)
MAPE: 15.35%
MAE: 125938.21
==================================================
ARIMA(4, 0, 0)
MAPE: 16.31%
MAE: 142509.83
==================================================
ARIMA(4, 0, 1)
MAPE: 15.67%
MAE: 136883.49
==================================================
ARIMA(4, 0, 2)
MAPE: 15.18%
MAE: 133873.56
==================================================
ARIMA(4, 0, 3)
MAPE: 14.76%
MAE: 129174.43
==================================================
ARIMA(4, 0, 4)
MAPE: 18.6%
MAE: 160272.46
==================================================
ARIMA(4, 1, 0)
MAPE: 13.69%
MAE: 117091.12
==================================================
ARIMA(4, 1, 1)
MAPE: 12.15%
MAE: 105938.49
==================================================
ARIMA(4, 1, 2)
MAPE: 12.11%
MAE: 105755.75
==================================================
ARIMA(4, 1, 3)
MAPE: 12.9%
MAE: 109436.04
==================================================
ARIMA(4, 1, 4)
MAPE: 15.43%
MAE: 134555.84
==================================================

Best parameter, lowest MAPE, and lowest MAE for SULAWESI TENGAH¶

In [135]:
print(f"Best parameters model for SULAWESI TENGAH:", best_param_sulawesi_tengah)
print(f"with the lowest MAPE: {lowest_mape_sulawesi_tengah.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_sulawesi_tengah.round(2)}")
Best parameters model for SULAWESI TENGAH: (2, 1, 4)
with the lowest MAPE: 9.05%
with the lowest MAE: 82997.99

Make prediction vs actual plot for SULAWESI TENGAH¶

In [136]:
plot_predictions_vs_actual(prediction_series=prediction_sulawesi_tengah, actual_series=test_sulawesi_tengah)
No description has been provided for this image

SULAWESI SELATAN (27)¶

Split SULAWESI SELATAN dataset¶

In [137]:
train_sulawesi_selatan = training_data["SULAWESI SELATAN"]
test_sulawesi_selatan = test_data["SULAWESI SELATAN"]

Make prediction for SULAWESI SELATAN¶

In [138]:
best_param_sulawesi_selatan, lowest_mape_sulawesi_selatan, lowest_mae_sulawesi_selatan, prediction_sulawesi_selatan = make_arima_prediction(train_sulawesi_selatan, test_sulawesi_selatan)

all_provinces_predictions['SULAWESI SELATAN'] = prediction_sulawesi_selatan
ARIMA(0, 0, 0)
MAPE: 46.44%
MAE: 1484791.42
==================================================
ARIMA(0, 0, 1)
MAPE: 38.47%
MAE: 1217817.99
==================================================
ARIMA(0, 0, 2)
MAPE: 32.2%
MAE: 1028406.38
==================================================
ARIMA(0, 0, 3)
MAPE: 29.76%
MAE: 956893.89
==================================================
ARIMA(0, 0, 4)
MAPE: 28.62%
MAE: 917585.24
==================================================
ARIMA(0, 1, 0)
MAPE: 23.3%
MAE: 722611.19
==================================================
ARIMA(0, 1, 1)
MAPE: 13.19%
MAE: 402623.57
==================================================
ARIMA(0, 1, 2)
MAPE: 30.42%
MAE: 942935.08
==================================================
ARIMA(0, 1, 3)
MAPE: 12.49%
MAE: 399933.7
==================================================
ARIMA(0, 1, 4)
MAPE: 15.05%
MAE: 485868.76
==================================================
ARIMA(1, 0, 0)
MAPE: 14.29%
MAE: 465770.1
==================================================
ARIMA(1, 0, 1)
MAPE: 14.61%
MAE: 476088.83
==================================================
ARIMA(1, 0, 2)
MAPE: 23.62%
MAE: 759941.39
==================================================
ARIMA(1, 0, 3)
MAPE: 20.75%
MAE: 664635.92
==================================================
ARIMA(1, 0, 4)
MAPE: 21.42%
MAE: 687767.2
==================================================
ARIMA(1, 1, 0)
MAPE: 12.33%
MAE: 374633.6
==================================================
ARIMA(1, 1, 1)
MAPE: 14.77%
MAE: 451579.25
==================================================
ARIMA(1, 1, 2)
MAPE: 31.37%
MAE: 973225.05
==================================================
ARIMA(1, 1, 3)
MAPE: 17.05%
MAE: 543210.5
==================================================
ARIMA(1, 1, 4)
MAPE: 14.59%
MAE: 464989.77
==================================================
ARIMA(2, 0, 0)
MAPE: 14.76%
MAE: 480831.04
==================================================
ARIMA(2, 0, 1)
MAPE: 13.53%
MAE: 438176.35
==================================================
ARIMA(2, 0, 2)
MAPE: 21.83%
MAE: 699920.42
==================================================
ARIMA(2, 0, 3)
MAPE: 21.41%
MAE: 686774.63
==================================================
ARIMA(2, 0, 4)
MAPE: 22.46%
MAE: 719184.04
==================================================
ARIMA(2, 1, 0)
MAPE: 22.83%
MAE: 704395.24
==================================================
ARIMA(2, 1, 1)
MAPE: 22.75%
MAE: 702697.16
==================================================
ARIMA(2, 1, 2)
MAPE: 9.71%
MAE: 313958.72
==================================================
ARIMA(2, 1, 3)
MAPE: 15.46%
MAE: 490155.86
==================================================
ARIMA(2, 1, 4)
MAPE: 14.4%
MAE: 457989.32
==================================================
ARIMA(3, 0, 0)
MAPE: 19.27%
MAE: 613813.87
==================================================
ARIMA(3, 0, 1)
MAPE: 19.38%
MAE: 618928.77
==================================================
ARIMA(3, 0, 2)
MAPE: 19.64%
MAE: 631732.15
==================================================
ARIMA(3, 0, 3)
MAPE: 19.8%
MAE: 637767.62
==================================================
ARIMA(3, 0, 4)
MAPE: 21.38%
MAE: 685727.81
==================================================
ARIMA(3, 1, 0)
MAPE: 14.84%
MAE: 454578.43
==================================================
ARIMA(3, 1, 1)
MAPE: 14.82%
MAE: 461957.72
==================================================
ARIMA(3, 1, 2)
MAPE: 14.75%
MAE: 460437.13
==================================================
ARIMA(3, 1, 3)
MAPE: 12.37%
MAE: 395737.92
==================================================
ARIMA(3, 1, 4)
MAPE: 14.11%
MAE: 447545.21
==================================================
ARIMA(4, 0, 0)
MAPE: 19.83%
MAE: 636842.64
==================================================
ARIMA(4, 0, 1)
MAPE: 21.62%
MAE: 694328.29
==================================================
ARIMA(4, 0, 2)
MAPE: 19.69%
MAE: 634400.56
==================================================
ARIMA(4, 0, 3)
MAPE: 19.79%
MAE: 637601.14
==================================================
ARIMA(4, 0, 4)
MAPE: 22.62%
MAE: 726920.77
==================================================
ARIMA(4, 1, 0)
MAPE: 13.37%
MAE: 417651.2
==================================================
ARIMA(4, 1, 1)
MAPE: 12.0%
MAE: 373768.76
==================================================
ARIMA(4, 1, 2)
MAPE: 14.04%
MAE: 434758.04
==================================================
ARIMA(4, 1, 3)
MAPE: 17.4%
MAE: 563992.98
==================================================
ARIMA(4, 1, 4)
MAPE: 14.75%
MAE: 469925.01
==================================================

Best parameter, lowest MAPE, and lowest MAE for SULAWESI SELATAN¶

In [139]:
print(f"Best parameters model for SULAWESI SELATAN:", best_param_sulawesi_selatan)
print(f"with the lowest MAPE: {lowest_mape_sulawesi_selatan.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_sulawesi_selatan.round(2)}")
Best parameters model for SULAWESI SELATAN: (2, 1, 2)
with the lowest MAPE: 9.71%
with the lowest MAE: 313958.72

Make prediction vs actual plot for SULAWESI SELATAN¶

In [140]:
plot_predictions_vs_actual(prediction_series=prediction_sulawesi_selatan, actual_series=test_sulawesi_selatan)
No description has been provided for this image

SULAWESI TENGGARA (28)¶

Split SULAWESI TENGGARA dataset¶

In [141]:
train_sulawesi_tenggara = training_data["SULAWESI TENGGARA"]
test_sulawesi_tenggara = test_data["SULAWESI TENGGARA"]

Make prediction for SULAWESI TENGGARA¶

In [142]:
best_param_sulawesi_tenggara, lowest_mape_sulawesi_tenggara, lowest_mae_sulawesi_tenggara, prediction_sulawesi_tenggara = make_arima_prediction(train_sulawesi_tenggara, test_sulawesi_tenggara)

all_provinces_predictions['SULAWESI TENGGARA'] = prediction_sulawesi_tenggara
ARIMA(0, 0, 0)
MAPE: 40.3%
MAE: 478652.57
==================================================
ARIMA(0, 0, 1)
MAPE: 34.73%
MAE: 412182.15
==================================================
ARIMA(0, 0, 2)
MAPE: 32.32%
MAE: 384153.81
==================================================
ARIMA(0, 0, 3)
MAPE: 29.35%
MAE: 352469.37
==================================================
ARIMA(0, 0, 4)
MAPE: 23.98%
MAE: 287048.0
==================================================
ARIMA(0, 1, 0)
MAPE: 7.95%
MAE: 102200.0
==================================================
ARIMA(0, 1, 1)
MAPE: 9.68%
MAE: 124690.52
==================================================
ARIMA(0, 1, 2)
MAPE: 8.48%
MAE: 108901.42
==================================================
ARIMA(0, 1, 3)
MAPE: 17.12%
MAE: 210517.66
==================================================
ARIMA(0, 1, 4)
MAPE: 16.65%
MAE: 205356.31
==================================================
ARIMA(1, 0, 0)
MAPE: 19.13%
MAE: 233216.82
==================================================
ARIMA(1, 0, 1)
MAPE: 18.7%
MAE: 228223.34
==================================================
ARIMA(1, 0, 2)
MAPE: 16.36%
MAE: 201334.34
==================================================
ARIMA(1, 0, 3)
MAPE: 20.39%
MAE: 247618.37
==================================================
ARIMA(1, 0, 4)
MAPE: 18.88%
MAE: 229521.23
==================================================
ARIMA(1, 1, 0)
MAPE: 9.77%
MAE: 125756.82
==================================================
ARIMA(1, 1, 1)
MAPE: 8.14%
MAE: 106134.87
==================================================
ARIMA(1, 1, 2)
MAPE: 6.82%
MAE: 88854.61
==================================================
ARIMA(1, 1, 3)
MAPE: 9.77%
MAE: 124216.08
==================================================
ARIMA(1, 1, 4)
MAPE: 11.15%
MAE: 141824.7
==================================================
ARIMA(2, 0, 0)
MAPE: 18.45%
MAE: 225363.47
==================================================
ARIMA(2, 0, 1)
MAPE: 19.95%
MAE: 242372.06
==================================================
ARIMA(2, 0, 2)
MAPE: 16.57%
MAE: 202288.02
==================================================
ARIMA(2, 0, 3)
MAPE: 16.65%
MAE: 203313.49
==================================================
ARIMA(2, 0, 4)
MAPE: 18.09%
MAE: 220138.5
==================================================
ARIMA(2, 1, 0)
MAPE: 8.54%
MAE: 109884.83
==================================================
ARIMA(2, 1, 1)
MAPE: 6.95%
MAE: 90610.85
==================================================
ARIMA(2, 1, 2)
MAPE: 13.73%
MAE: 171151.17
==================================================
ARIMA(2, 1, 3)
MAPE: 9.07%
MAE: 116821.69
==================================================
ARIMA(2, 1, 4)
MAPE: 8.86%
MAE: 113703.42
==================================================
ARIMA(3, 0, 0)
MAPE: 16.23%
MAE: 199756.36
==================================================
ARIMA(3, 0, 1)
MAPE: 15.99%
MAE: 195876.74
==================================================
ARIMA(3, 0, 2)
MAPE: 16.53%
MAE: 201920.23
==================================================
ARIMA(3, 0, 3)
MAPE: 17.54%
MAE: 213438.34
==================================================
ARIMA(3, 0, 4)
MAPE: 17.98%
MAE: 218947.39
==================================================
ARIMA(3, 1, 0)
MAPE: 13.57%
MAE: 169366.68
==================================================
ARIMA(3, 1, 1)
MAPE: 10.14%
MAE: 126873.48
==================================================
ARIMA(3, 1, 2)
MAPE: 8.78%
MAE: 112202.47
==================================================
ARIMA(3, 1, 3)
MAPE: 16.86%
MAE: 206348.45
==================================================
ARIMA(3, 1, 4)
MAPE: 8.92%
MAE: 114886.43
==================================================
ARIMA(4, 0, 0)
MAPE: 20.09%
MAE: 243992.65
==================================================
ARIMA(4, 0, 1)
MAPE: 17.05%
MAE: 207916.97
==================================================
ARIMA(4, 0, 2)
MAPE: 17.74%
MAE: 216029.32
==================================================
ARIMA(4, 0, 3)
MAPE: 17.69%
MAE: 215538.52
==================================================
ARIMA(4, 0, 4)
MAPE: 18.25%
MAE: 221550.38
==================================================
ARIMA(4, 1, 0)
MAPE: 14.4%
MAE: 179120.48
==================================================
ARIMA(4, 1, 1)
MAPE: 9.9%
MAE: 126974.63
==================================================
ARIMA(4, 1, 2)
MAPE: 8.77%
MAE: 112014.05
==================================================
ARIMA(4, 1, 3)
MAPE: 8.79%
MAE: 112304.27
==================================================
ARIMA(4, 1, 4)
MAPE: 14.28%
MAE: 177276.68
==================================================

Best parameter, lowest MAPE, and lowest MAE for SULAWESI TENGGARA¶

In [143]:
print(f"Best parameters model for SULAWESI TENGGARA:", best_param_sulawesi_tenggara)
print(f"with the lowest MAPE: {lowest_mape_sulawesi_tenggara.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_sulawesi_tenggara.round(2)}")
Best parameters model for SULAWESI TENGGARA: (1, 1, 2)
with the lowest MAPE: 6.82%
with the lowest MAE: 88854.61

Make prediction vs actual plot for SULAWESI TENGGARA¶

In [144]:
plot_predictions_vs_actual(prediction_series=prediction_sulawesi_tenggara, actual_series=test_sulawesi_tenggara)
No description has been provided for this image

GORONTALO (29)¶

Split GORONTALO dataset¶

In [145]:
train_gorontalo = training_data["GORONTALO"]
test_gorontalo = test_data["GORONTALO"]

Make prediction for GORONTALO¶

In [146]:
best_param_gorontalo, lowest_mape_gorontalo, lowest_mae_gorontalo, prediction_gorontalo = make_arima_prediction(train_gorontalo, test_gorontalo)

all_provinces_predictions['GORONTALO'] = prediction_gorontalo
ARIMA(0, 0, 0)
MAPE: 58.64%
MAE: 175163.08
==================================================
ARIMA(0, 0, 1)
MAPE: 51.81%
MAE: 155691.84
==================================================
ARIMA(0, 0, 2)
MAPE: 41.43%
MAE: 127395.85
==================================================
ARIMA(0, 0, 3)
MAPE: 36.81%
MAE: 114531.42
==================================================
ARIMA(0, 0, 4)
MAPE: 35.69%
MAE: 110034.54
==================================================
ARIMA(0, 1, 0)
MAPE: 22.16%
MAE: 62909.35
==================================================
ARIMA(0, 1, 1)
MAPE: 5.46%
MAE: 18933.45
==================================================
ARIMA(0, 1, 2)
MAPE: 12.97%
MAE: 38313.8
==================================================
ARIMA(0, 1, 3)
MAPE: 10.18%
MAE: 32632.09
==================================================
ARIMA(0, 1, 4)
MAPE: 12.54%
MAE: 37313.94
==================================================
ARIMA(1, 0, 0)
MAPE: 24.98%
MAE: 77617.86
==================================================
ARIMA(1, 0, 1)
MAPE: 22.49%
MAE: 70008.9
==================================================
ARIMA(1, 0, 2)
MAPE: 21.61%
MAE: 67812.88
==================================================
ARIMA(1, 0, 3)
MAPE: 23.48%
MAE: 73205.12
==================================================
ARIMA(1, 0, 4)
MAPE: 26.12%
MAE: 79483.68
==================================================
ARIMA(1, 1, 0)
MAPE: 7.57%
MAE: 24559.63
==================================================
ARIMA(1, 1, 1)
MAPE: 8.76%
MAE: 27437.29
==================================================
ARIMA(1, 1, 2)
MAPE: 12.33%
MAE: 36667.6
==================================================
ARIMA(1, 1, 3)
MAPE: 12.25%
MAE: 39103.65
==================================================
ARIMA(1, 1, 4)
MAPE: 16.4%
MAE: 52392.08
==================================================
ARIMA(2, 0, 0)
MAPE: 22.05%
MAE: 68639.42
==================================================
ARIMA(2, 0, 1)
MAPE: 21.42%
MAE: 66818.83
==================================================
ARIMA(2, 0, 2)
MAPE: 22.25%
MAE: 69449.84
==================================================
ARIMA(2, 0, 3)
MAPE: 23.77%
MAE: 73915.66
==================================================
ARIMA(2, 0, 4)
MAPE: 39.22%
MAE: 122146.37
==================================================
ARIMA(2, 1, 0)
MAPE: 10.07%
MAE: 30689.15
==================================================
ARIMA(2, 1, 1)
MAPE: 11.05%
MAE: 33231.62
==================================================
ARIMA(2, 1, 2)
MAPE: 21.56%
MAE: 62172.04
==================================================
ARIMA(2, 1, 3)
MAPE: 12.38%
MAE: 37957.0
==================================================
ARIMA(2, 1, 4)
MAPE: 14.08%
MAE: 41535.01
==================================================
ARIMA(3, 0, 0)
MAPE: 20.86%
MAE: 65256.6
==================================================
ARIMA(3, 0, 1)
MAPE: 20.77%
MAE: 64978.77
==================================================
ARIMA(3, 0, 2)
MAPE: 21.18%
MAE: 67240.87
==================================================
ARIMA(3, 0, 3)
MAPE: 21.53%
MAE: 68230.54
==================================================
ARIMA(3, 0, 4)
MAPE: 21.34%
MAE: 67622.89
==================================================
ARIMA(3, 1, 0)
MAPE: 12.89%
MAE: 38257.18
==================================================
ARIMA(3, 1, 1)
MAPE: 13.13%
MAE: 39053.61
==================================================
ARIMA(3, 1, 2)
MAPE: 10.13%
MAE: 33745.59
==================================================
ARIMA(3, 1, 3)
MAPE: 13.06%
MAE: 42075.69
==================================================
ARIMA(3, 1, 4)
MAPE: 11.58%
MAE: 37271.26
==================================================
ARIMA(4, 0, 0)
MAPE: 20.8%
MAE: 65176.44
==================================================
ARIMA(4, 0, 1)
MAPE: 21.26%
MAE: 66662.85
==================================================
ARIMA(4, 0, 2)
MAPE: 21.11%
MAE: 66946.49
==================================================
ARIMA(4, 0, 3)
MAPE: 21.44%
MAE: 68028.83
==================================================
ARIMA(4, 0, 4)
MAPE: 21.36%
MAE: 67587.34
==================================================
ARIMA(4, 1, 0)
MAPE: 11.06%
MAE: 34225.25
==================================================
ARIMA(4, 1, 1)
MAPE: 11.38%
MAE: 35029.17
==================================================
ARIMA(4, 1, 2)
MAPE: 13.93%
MAE: 44187.33
==================================================
ARIMA(4, 1, 3)
MAPE: 11.56%
MAE: 36954.54
==================================================
ARIMA(4, 1, 4)
MAPE: 20.6%
MAE: 58764.19
==================================================

Best parameter, lowest MAPE, and lowest MAE for GORONTALO¶

In [147]:
print(f"Best parameters model for GORONTALO:", best_param_gorontalo)
print(f"with the lowest MAPE: {lowest_mape_gorontalo.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_gorontalo.round(2)}")
Best parameters model for GORONTALO: (0, 1, 1)
with the lowest MAPE: 5.46%
with the lowest MAE: 18933.45

Make prediction vs actual plot for GORONTALO¶

In [148]:
plot_predictions_vs_actual(prediction_series=prediction_gorontalo, actual_series=test_gorontalo)
No description has been provided for this image

SULAWESI BARAT (30)¶

Split SULAWESI BARAT dataset¶

In [149]:
train_sulawesi_barat = training_data["SULAWESI BARAT"]
test_sulawesi_barat = test_data["SULAWESI BARAT"]

Make prediction for SULAWESI BARAT¶

In [150]:
best_param_sulawesi_barat, lowest_mape_sulawesi_barat, lowest_mae_sulawesi_barat, prediction_sulawesi_barat = make_arima_prediction(train_sulawesi_barat, test_sulawesi_barat)

all_provinces_predictions['SULAWESI BARAT'] = prediction_sulawesi_barat
ARIMA(0, 0, 0)
MAPE: 38.18%
MAE: 142811.41
==================================================
ARIMA(0, 0, 1)
MAPE: 30.54%
MAE: 113420.02
==================================================
ARIMA(0, 0, 2)
MAPE: 26.39%
MAE: 98705.66
==================================================
ARIMA(0, 0, 3)
MAPE: 23.03%
MAE: 87092.88
==================================================
ARIMA(0, 0, 4)
MAPE: 21.5%
MAE: 80483.53
==================================================
ARIMA(0, 1, 0)
MAPE: 10.33%
MAE: 37554.27
==================================================
ARIMA(0, 1, 1)
MAPE: 10.34%
MAE: 37565.1
==================================================
ARIMA(0, 1, 2)
MAPE: 25.74%
MAE: 88933.65
==================================================
ARIMA(0, 1, 3)
MAPE: 9.41%
MAE: 37205.0
==================================================
ARIMA(0, 1, 4)
MAPE: 10.43%
MAE: 40814.82
==================================================
ARIMA(1, 0, 0)
MAPE: 11.57%
MAE: 44825.42
==================================================
ARIMA(1, 0, 1)
MAPE: 10.42%
MAE: 39967.94
==================================================
ARIMA(1, 0, 2)
MAPE: 17.32%
MAE: 63893.24
==================================================
ARIMA(1, 0, 3)
MAPE: 14.47%
MAE: 54390.43
==================================================
ARIMA(1, 0, 4)
MAPE: 14.51%
MAE: 53987.06
==================================================
ARIMA(1, 1, 0)
MAPE: 10.35%
MAE: 37583.63
==================================================
ARIMA(1, 1, 1)
MAPE: 10.36%
MAE: 37607.99
==================================================
ARIMA(1, 1, 2)
MAPE: 20.69%
MAE: 71103.4
==================================================
ARIMA(1, 1, 3)
MAPE: 12.3%
MAE: 44943.13
==================================================
ARIMA(1, 1, 4)
MAPE: 10.55%
MAE: 39603.84
==================================================
ARIMA(2, 0, 0)
MAPE: 11.78%
MAE: 44592.5
==================================================
ARIMA(2, 0, 1)
MAPE: 11.53%
MAE: 44801.89
==================================================
ARIMA(2, 0, 2)
MAPE: 14.67%
MAE: 54592.66
==================================================
ARIMA(2, 0, 3)
MAPE: 14.46%
MAE: 54122.06
==================================================
ARIMA(2, 0, 4)
MAPE: 14.57%
MAE: 54773.01
==================================================
ARIMA(2, 1, 0)
MAPE: 18.12%
MAE: 62192.17
==================================================
ARIMA(2, 1, 1)
MAPE: 17.79%
MAE: 60908.63
==================================================
ARIMA(2, 1, 2)
MAPE: 14.22%
MAE: 52031.69
==================================================
ARIMA(2, 1, 3)
MAPE: 10.67%
MAE: 39561.23
==================================================
ARIMA(2, 1, 4)
MAPE: 10.49%
MAE: 39150.8
==================================================
ARIMA(3, 0, 0)
MAPE: 13.11%
MAE: 47458.3
==================================================
ARIMA(3, 0, 1)
MAPE: 14.13%
MAE: 51411.47
==================================================
ARIMA(3, 0, 2)
MAPE: 14.23%
MAE: 53391.51
==================================================
ARIMA(3, 0, 3)
MAPE: 14.46%
MAE: 54325.84
==================================================
ARIMA(3, 0, 4)
MAPE: 14.71%
MAE: 55093.81
==================================================
ARIMA(3, 1, 0)
MAPE: 11.38%
MAE: 41174.81
==================================================
ARIMA(3, 1, 1)
MAPE: 13.57%
MAE: 47680.04
==================================================
ARIMA(3, 1, 2)
MAPE: 14.07%
MAE: 49034.62
==================================================
ARIMA(3, 1, 3)
MAPE: 12.48%
MAE: 47944.69
==================================================
ARIMA(3, 1, 4)
MAPE: 14.24%
MAE: 53670.19
==================================================
ARIMA(4, 0, 0)
MAPE: 16.37%
MAE: 60386.43
==================================================
ARIMA(4, 0, 1)
MAPE: 17.4%
MAE: 64084.93
==================================================
ARIMA(4, 0, 2)
MAPE: 18.28%
MAE: 66929.57
==================================================
ARIMA(4, 0, 3)
MAPE: 15.83%
MAE: 59127.2
==================================================
ARIMA(4, 0, 4)
MAPE: 15.29%
MAE: 57378.98
==================================================
ARIMA(4, 1, 0)
MAPE: 12.3%
MAE: 45570.31
==================================================
ARIMA(4, 1, 1)
MAPE: 11.47%
MAE: 43282.03
==================================================
ARIMA(4, 1, 2)
MAPE: 12.63%
MAE: 44884.55
==================================================
ARIMA(4, 1, 3)
MAPE: 15.29%
MAE: 56629.84
==================================================
ARIMA(4, 1, 4)
MAPE: 17.22%
MAE: 61650.57
==================================================

Best parameter, lowest MAPE, and lowest MAE for SULAWESI BARAT¶

In [151]:
print(f"Best parameters model for SULAWESI BARAT:", best_param_sulawesi_barat)
print(f"with the lowest MAPE: {lowest_mape_sulawesi_barat.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_sulawesi_barat.round(2)}")
Best parameters model for SULAWESI BARAT: (0, 1, 3)
with the lowest MAPE: 9.41%
with the lowest MAE: 37205.0

Make prediction vs actual plot for SULAWESI BARAT¶

In [152]:
plot_predictions_vs_actual(prediction_series=prediction_sulawesi_barat, actual_series=test_sulawesi_barat)
    
No description has been provided for this image

MALUKU (31)¶

Split MALUKU dataset¶

In [153]:
train_maluku = training_data["MALUKU"]
test_maluku = test_data["MALUKU"]

Make prediction for MALUKU¶

In [154]:
best_param_maluku, lowest_mape_maluku, lowest_mae_maluku, prediction_maluku = make_arima_prediction(train_maluku, test_maluku)

all_provinces_predictions['MALUKU'] = prediction_maluku
ARIMA(0, 0, 0)
MAPE: 47.25%
MAE: 77574.81
==================================================
ARIMA(0, 0, 1)
MAPE: 40.23%
MAE: 63707.94
==================================================
ARIMA(0, 0, 2)
MAPE: 35.8%
MAE: 57781.99
==================================================
ARIMA(0, 0, 3)
MAPE: 33.68%
MAE: 54727.08
==================================================
ARIMA(0, 0, 4)
MAPE: 32.36%
MAE: 51305.03
==================================================
ARIMA(0, 1, 0)
MAPE: 83.78%
MAE: 125734.52
==================================================
ARIMA(0, 1, 1)
MAPE: 29.82%
MAE: 42016.89
==================================================
ARIMA(0, 1, 2)
MAPE: 23.39%
MAE: 32397.84
==================================================
ARIMA(0, 1, 3)
MAPE: 19.67%
MAE: 27807.02
==================================================
ARIMA(0, 1, 4)
MAPE: 19.1%
MAE: 27472.22
==================================================
ARIMA(1, 0, 0)
MAPE: 32.73%
MAE: 49216.92
==================================================
ARIMA(1, 0, 1)
MAPE: 25.67%
MAE: 36588.9
==================================================
ARIMA(1, 0, 2)
MAPE: 25.99%
MAE: 37011.76
==================================================
ARIMA(1, 0, 3)
MAPE: 28.34%
MAE: 40486.23
==================================================
ARIMA(1, 0, 4)
MAPE: 25.86%
MAE: 35327.27
==================================================
ARIMA(1, 1, 0)
MAPE: 51.47%
MAE: 75150.44
==================================================
ARIMA(1, 1, 1)
MAPE: 20.76%
MAE: 29118.69
==================================================
ARIMA(1, 1, 2)
MAPE: 13.61%
MAE: 20473.33
==================================================
ARIMA(1, 1, 3)
MAPE: 20.05%
MAE: 28072.51
==================================================
ARIMA(1, 1, 4)
MAPE: 12.27%
MAE: 18910.57
==================================================
ARIMA(2, 0, 0)
MAPE: 28.28%
MAE: 40710.75
==================================================
ARIMA(2, 0, 1)
MAPE: 25.78%
MAE: 36734.33
==================================================
ARIMA(2, 0, 2)
MAPE: 26.73%
MAE: 38120.36
==================================================
ARIMA(2, 0, 3)
MAPE: 28.29%
MAE: 40380.2
==================================================
ARIMA(2, 0, 4)
MAPE: 30.41%
MAE: 43427.47
==================================================
ARIMA(2, 1, 0)
MAPE: 40.23%
MAE: 57925.21
==================================================
ARIMA(2, 1, 1)
MAPE: 13.51%
MAE: 21010.3
==================================================
ARIMA(2, 1, 2)
MAPE: 13.62%
MAE: 20562.85
==================================================
ARIMA(2, 1, 3)
MAPE: 11.85%
MAE: 18089.59
==================================================
ARIMA(2, 1, 4)
MAPE: 11.66%
MAE: 17817.8
==================================================
ARIMA(3, 0, 0)
MAPE: 26.91%
MAE: 38480.52
==================================================
ARIMA(3, 0, 1)
MAPE: 25.86%
MAE: 36865.45
==================================================
ARIMA(3, 0, 2)
MAPE: 26.06%
MAE: 37080.41
==================================================
ARIMA(3, 0, 3)
MAPE: 26.97%
MAE: 38358.88
==================================================
ARIMA(3, 0, 4)
MAPE: 28.72%
MAE: 38381.56
==================================================
ARIMA(3, 1, 0)
MAPE: 32.23%
MAE: 45801.09
==================================================
ARIMA(3, 1, 1)
MAPE: 14.04%
MAE: 21281.93
==================================================
ARIMA(3, 1, 2)
MAPE: 13.76%
MAE: 20706.28
==================================================
ARIMA(3, 1, 3)
MAPE: 12.06%
MAE: 18382.08
==================================================
ARIMA(3, 1, 4)
MAPE: 16.0%
MAE: 22997.06
==================================================
ARIMA(4, 0, 0)
MAPE: 24.99%
MAE: 35516.2
==================================================
ARIMA(4, 0, 1)
MAPE: 25.82%
MAE: 36759.43
==================================================
ARIMA(4, 0, 2)
MAPE: 29.14%
MAE: 42223.31
==================================================
ARIMA(4, 0, 3)
MAPE: 44.43%
MAE: 64964.09
==================================================
ARIMA(4, 0, 4)
MAPE: 28.26%
MAE: 38471.24
==================================================
ARIMA(4, 1, 0)
MAPE: 30.72%
MAE: 43453.57
==================================================
ARIMA(4, 1, 1)
MAPE: 13.98%
MAE: 20869.8
==================================================
ARIMA(4, 1, 2)
MAPE: 13.02%
MAE: 19768.96
==================================================
ARIMA(4, 1, 3)
MAPE: 11.91%
MAE: 18241.38
==================================================
ARIMA(4, 1, 4)
MAPE: 13.96%
MAE: 20178.47
==================================================

Best parameter, lowest MAPE, and lowest MAE for MALUKU¶

In [155]:
print(f"Best parameters model for MALUKU:", best_param_maluku)
print(f"with the lowest MAPE: {lowest_mape_maluku.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_maluku.round(2)}")
Best parameters model for MALUKU: (2, 1, 4)
with the lowest MAPE: 11.66%
with the lowest MAE: 17817.8

Make prediction vs actual plot for MALUKU¶

In [156]:
plot_predictions_vs_actual(prediction_series=prediction_maluku, actual_series=test_maluku)
No description has been provided for this image

MALUKU UTARA (32)¶

Split MALUKU UTARA dataset¶

In [157]:
train_maluku_utara = training_data["MALUKU UTARA"]
test_maluku_utara = test_data["MALUKU UTARA"]

Make prediction for MALUKU UTARA¶

In [158]:
best_param_maluku_utara, lowest_mape_maluku_utara, lowest_mae_maluku_utara, prediction_maluku_utara = make_arima_prediction(train_maluku_utara, test_maluku_utara)

all_provinces_predictions['MALUKU UTARA'] = prediction_maluku_utara
ARIMA(0, 0, 0)
MAPE: 38.11%
MAE: 67646.02
==================================================
ARIMA(0, 0, 1)
MAPE: 34.51%
MAE: 60795.82
==================================================
ARIMA(0, 0, 2)
MAPE: 41.41%
MAE: 74407.28
==================================================
ARIMA(0, 0, 3)
MAPE: 41.11%
MAE: 73692.16
==================================================
ARIMA(0, 0, 4)
MAPE: 30.72%
MAE: 53871.25
==================================================
ARIMA(0, 1, 0)
MAPE: 76.63%
MAE: 128671.89
==================================================
ARIMA(0, 1, 1)
MAPE: 63.86%
MAE: 106851.23
==================================================
ARIMA(0, 1, 2)
MAPE: 67.83%
MAE: 113521.89
==================================================
ARIMA(0, 1, 3)
MAPE: 46.2%
MAE: 77275.85
==================================================
ARIMA(0, 1, 4)
MAPE: 43.22%
MAE: 72282.28
==================================================
ARIMA(1, 0, 0)
MAPE: 25.97%
MAE: 44164.84
==================================================
ARIMA(1, 0, 1)
MAPE: 27.17%
MAE: 46544.8
==================================================
ARIMA(1, 0, 2)
MAPE: 25.32%
MAE: 42874.78
==================================================
ARIMA(1, 0, 3)
MAPE: 38.87%
MAE: 69132.21
==================================================
ARIMA(1, 0, 4)
MAPE: 31.41%
MAE: 53939.47
==================================================
ARIMA(1, 1, 0)
MAPE: 64.52%
MAE: 107929.56
==================================================
ARIMA(1, 1, 1)
MAPE: 67.87%
MAE: 113630.67
==================================================
ARIMA(1, 1, 2)
MAPE: 43.95%
MAE: 73795.08
==================================================
ARIMA(1, 1, 3)
MAPE: 43.93%
MAE: 73832.51
==================================================
ARIMA(1, 1, 4)
MAPE: 43.88%
MAE: 73697.68
==================================================
ARIMA(2, 0, 0)
MAPE: 26.68%
MAE: 45734.12
==================================================
ARIMA(2, 0, 1)
MAPE: 27.15%
MAE: 46479.94
==================================================
ARIMA(2, 0, 2)
MAPE: 25.92%
MAE: 44192.63
==================================================
ARIMA(2, 0, 3)
MAPE: 32.07%
MAE: 55580.08
==================================================
ARIMA(2, 0, 4)
MAPE: 33.11%
MAE: 56329.33
==================================================
ARIMA(2, 1, 0)
MAPE: 68.36%
MAE: 114384.54
==================================================
ARIMA(2, 1, 1)
MAPE: 69.23%
MAE: 115938.48
==================================================
ARIMA(2, 1, 2)
MAPE: 44.41%
MAE: 74504.01
==================================================
ARIMA(2, 1, 3)
MAPE: 42.49%
MAE: 70610.54
==================================================
ARIMA(2, 1, 4)
MAPE: 44.84%
MAE: 75161.35
==================================================
ARIMA(3, 0, 0)
MAPE: 26.8%
MAE: 45600.19
==================================================
ARIMA(3, 0, 1)
MAPE: 26.35%
MAE: 45140.53
==================================================
ARIMA(3, 0, 2)
MAPE: 23.49%
MAE: 41325.17
==================================================
ARIMA(3, 0, 3)
MAPE: 30.99%
MAE: 52283.58
==================================================
ARIMA(3, 0, 4)
MAPE: 29.38%
MAE: 52801.39
==================================================
ARIMA(3, 1, 0)
MAPE: 59.36%
MAE: 99450.14
==================================================
ARIMA(3, 1, 1)
MAPE: 43.41%
MAE: 73082.17
==================================================
ARIMA(3, 1, 2)
MAPE: 46.88%
MAE: 78493.22
==================================================
ARIMA(3, 1, 3)
MAPE: 35.28%
MAE: 58844.94
==================================================
ARIMA(3, 1, 4)
MAPE: 39.32%
MAE: 65346.12
==================================================
ARIMA(4, 0, 0)
MAPE: 28.76%
MAE: 49026.0
==================================================
ARIMA(4, 0, 1)
MAPE: 28.85%
MAE: 48928.91
==================================================
ARIMA(4, 0, 2)
MAPE: 28.03%
MAE: 47821.19
==================================================
ARIMA(4, 0, 3)
MAPE: 30.41%
MAE: 52838.32
==================================================
ARIMA(4, 0, 4)
MAPE: 30.95%
MAE: 53724.02
==================================================
ARIMA(4, 1, 0)
MAPE: 48.68%
MAE: 81342.9
==================================================
ARIMA(4, 1, 1)
MAPE: 42.28%
MAE: 71018.35
==================================================
ARIMA(4, 1, 2)
MAPE: 44.55%
MAE: 74583.38
==================================================
ARIMA(4, 1, 3)
MAPE: 57.9%
MAE: 97085.0
==================================================
ARIMA(4, 1, 4)
MAPE: 36.49%
MAE: 61013.01
==================================================

Best parameteter, lowest MAPE, and lowest MAE for MALUKU UTARA¶

In [159]:
print(f"Best parameters model for MALUKU UTARA:", best_param_maluku_utara)
print(f"with the lowest MAPE: {lowest_mape_maluku_utara.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_maluku_utara.round(2)}")
Best parameters model for MALUKU UTARA: (3, 0, 2)
with the lowest MAPE: 23.49%
with the lowest MAE: 41325.17

Make predcition vs actual plot for MALUKU UTARA¶

In [160]:
plot_predictions_vs_actual(prediction_series=prediction_maluku_utara, actual_series=test_maluku_utara)
No description has been provided for this image

PAPUA BARAT (33)¶

Split PAPUA BARAT dataset¶

In [161]:
train_papua_barat = training_data["PAPUA BARAT"]
test_papua_barat = test_data["PAPUA BARAT"]

Make prediction for PAPUA BARAT¶

In [162]:
best_param_papua_barat, lowest_mape_papua_barat, lowest_mae_papua_barat, prediction_papua_barat = make_arima_prediction(train_papua_barat, test_papua_barat)

all_provinces_predictions['PAPUA BARAT'] = prediction_papua_barat
ARIMA(0, 0, 0)
MAPE: 101.18%
MAE: 33048.62
==================================================
ARIMA(0, 0, 1)
MAPE: 124.57%
MAE: 44232.69
==================================================
ARIMA(0, 0, 2)
MAPE: 164.76%
MAE: 60580.65
==================================================
ARIMA(0, 0, 3)
MAPE: 188.58%
MAE: 69398.8
==================================================
ARIMA(0, 0, 4)
MAPE: 240.44%
MAE: 88494.88
==================================================
ARIMA(0, 1, 0)
MAPE: 541.41%
MAE: 181002.48
==================================================
ARIMA(0, 1, 1)
MAPE: 393.21%
MAE: 131197.58
==================================================
ARIMA(0, 1, 2)
MAPE: 388.8%
MAE: 129784.16
==================================================
ARIMA(0, 1, 3)
MAPE: 368.51%
MAE: 124131.55
==================================================
ARIMA(0, 1, 4)
MAPE: 395.71%
MAE: 131162.86
==================================================
ARIMA(1, 0, 0)
MAPE: 353.07%
MAE: 121119.97
==================================================
ARIMA(1, 0, 1)
MAPE: 318.29%
MAE: 106836.5
==================================================
ARIMA(1, 0, 2)
MAPE: 321.04%
MAE: 107754.89
==================================================
ARIMA(1, 0, 3)
MAPE: 325.79%
MAE: 109968.98
==================================================
ARIMA(1, 0, 4)
MAPE: 305.84%
MAE: 98317.99
==================================================
ARIMA(1, 1, 0)
MAPE: 436.41%
MAE: 145369.43
==================================================
ARIMA(1, 1, 1)
MAPE: 384.56%
MAE: 128431.25
==================================================
ARIMA(1, 1, 2)
MAPE: 418.57%
MAE: 139500.98
==================================================
ARIMA(1, 1, 3)
MAPE: 373.11%
MAE: 125378.58
==================================================
ARIMA(1, 1, 4)
MAPE: 412.69%
MAE: 135810.49
==================================================
ARIMA(2, 0, 0)
MAPE: 335.51%
MAE: 112759.84
==================================================
ARIMA(2, 0, 1)
MAPE: 350.08%
MAE: 118260.21
==================================================
ARIMA(2, 0, 2)
MAPE: 336.85%
MAE: 113292.77
==================================================
ARIMA(2, 0, 3)
MAPE: 325.99%
MAE: 109934.08
==================================================
ARIMA(2, 0, 4)
MAPE: 343.4%
MAE: 110820.38
==================================================
ARIMA(2, 1, 0)
MAPE: 434.06%
MAE: 144590.09
==================================================
ARIMA(2, 1, 1)
MAPE: 383.85%
MAE: 128437.58
==================================================
ARIMA(2, 1, 2)
MAPE: 383.44%
MAE: 128511.04
==================================================
ARIMA(2, 1, 3)
MAPE: 416.53%
MAE: 139215.59
==================================================
ARIMA(2, 1, 4)
MAPE: 411.73%
MAE: 135758.49
==================================================
ARIMA(3, 0, 0)
MAPE: 340.02%
MAE: 114419.44
==================================================
ARIMA(3, 0, 1)
MAPE: 345.86%
MAE: 116630.55
==================================================
ARIMA(3, 0, 2)
MAPE: 327.46%
MAE: 110119.71
==================================================
ARIMA(3, 0, 3)
MAPE: 331.26%
MAE: 111578.77
==================================================
ARIMA(3, 0, 4)
MAPE: 342.75%
MAE: 110574.37
==================================================
ARIMA(3, 1, 0)
MAPE: 370.33%
MAE: 123901.36
==================================================
ARIMA(3, 1, 1)
MAPE: 366.58%
MAE: 122686.29
==================================================
ARIMA(3, 1, 2)
MAPE: 391.98%
MAE: 129156.87
==================================================
ARIMA(3, 1, 3)
MAPE: 421.31%
MAE: 138725.77
==================================================
ARIMA(3, 1, 4)
MAPE: 415.02%
MAE: 136604.1
==================================================
ARIMA(4, 0, 0)
MAPE: 306.16%
MAE: 102613.86
==================================================
ARIMA(4, 0, 1)
MAPE: 308.78%
MAE: 103517.02
==================================================
ARIMA(4, 0, 2)
MAPE: 312.36%
MAE: 104621.96
==================================================
ARIMA(4, 0, 3)
MAPE: 312.3%
MAE: 99754.52
==================================================
ARIMA(4, 0, 4)
MAPE: 336.06%
MAE: 106995.27
==================================================
ARIMA(4, 1, 0)
MAPE: 364.55%
MAE: 122024.51
==================================================
ARIMA(4, 1, 1)
MAPE: 364.15%
MAE: 122026.7
==================================================
ARIMA(4, 1, 2)
MAPE: 422.61%
MAE: 139101.3
==================================================
ARIMA(4, 1, 3)
MAPE: 399.99%
MAE: 131651.04
==================================================
ARIMA(4, 1, 4)
MAPE: 471.61%
MAE: 155063.98
==================================================

Best parameter, lowest MAPE, and lowest MAE for PAPUA BARAT¶

In [163]:
print(f"Best parameters model for PAPUA BARAT:", best_param_papua_barat)
print(f"with the lowest MAPE: {lowest_mape_papua_barat.round(2)}%") 
print(f"with the lowest MAE: {lowest_mae_papua_barat.round(2)}")
Best parameters model for PAPUA BARAT: (0, 0, 0)
with the lowest MAPE: 101.18%
with the lowest MAE: 33048.62

Make prediction vs actual plot for PAPUA BARAT¶

In [164]:
plot_predictions_vs_actual(prediction_series=prediction_papua_barat, actual_series=test_papua_barat)
No description has been provided for this image

PAPUA (34)¶

Split PAPUA dataset¶

In [165]:
train_papua = training_data["PAPUA"]
test_papua = test_data["PAPUA"]

Make prediction for PAPUA¶

In [166]:
best_param_papua, lowest_mape_papua, lowest_mae_papua, prediction_papua = make_arima_prediction(train_papua, test_papua)

all_provinces_predictions['PAPUA'] = prediction_papua
ARIMA(0, 0, 0)
MAPE: 20.81%
MAE: 19803.87
==================================================
ARIMA(0, 0, 1)
MAPE: 39.3%
MAE: 44344.21
==================================================
ARIMA(0, 0, 2)
MAPE: 62.89%
MAE: 69943.55
==================================================
ARIMA(0, 0, 3)
MAPE: 92.0%
MAE: 99983.51
==================================================
ARIMA(0, 0, 4)
MAPE: 120.57%
MAE: 130649.09
==================================================
ARIMA(0, 1, 0)
MAPE: 321.25%
MAE: 320065.63
==================================================
ARIMA(0, 1, 1)
MAPE: 228.83%
MAE: 227438.51
==================================================
ARIMA(0, 1, 2)
MAPE: 225.23%
MAE: 224002.86
==================================================
ARIMA(0, 1, 3)
MAPE: 220.75%
MAE: 219881.94
==================================================
ARIMA(0, 1, 4)
MAPE: 226.17%
MAE: 224548.33
==================================================
ARIMA(1, 0, 0)
MAPE: 212.29%
MAE: 215163.0
==================================================
ARIMA(1, 0, 1)
MAPE: 191.99%
MAE: 192295.54
==================================================
ARIMA(1, 0, 2)
MAPE: 193.5%
MAE: 193798.57
==================================================
ARIMA(1, 0, 3)
MAPE: 193.4%
MAE: 193708.84
==================================================
ARIMA(1, 0, 4)
MAPE: 192.91%
MAE: 191820.38
==================================================
ARIMA(1, 1, 0)
MAPE: 257.18%
MAE: 255226.39
==================================================
ARIMA(1, 1, 1)
MAPE: 224.3%
MAE: 223131.12
==================================================
ARIMA(1, 1, 2)
MAPE: 223.86%
MAE: 222733.99
==================================================
ARIMA(1, 1, 3)
MAPE: 220.57%
MAE: 219666.62
==================================================
ARIMA(1, 1, 4)
MAPE: 224.7%
MAE: 223423.94
==================================================
ARIMA(2, 0, 0)
MAPE: 198.79%
MAE: 199017.97
==================================================
ARIMA(2, 0, 1)
MAPE: 194.67%
MAE: 194890.29
==================================================
ARIMA(2, 0, 2)
MAPE: 193.34%
MAE: 193645.19
==================================================
ARIMA(2, 0, 3)
MAPE: 195.45%
MAE: 195717.0
==================================================
ARIMA(2, 0, 4)
MAPE: 161.26%
MAE: 162380.65
==================================================
ARIMA(2, 1, 0)
MAPE: 240.61%
MAE: 238925.34
==================================================
ARIMA(2, 1, 1)
MAPE: 223.53%
MAE: 222460.9
==================================================
ARIMA(2, 1, 2)
MAPE: 222.39%
MAE: 221399.37
==================================================
ARIMA(2, 1, 3)
MAPE: 219.21%
MAE: 217690.75
==================================================
ARIMA(2, 1, 4)
MAPE: 231.77%
MAE: 229664.84
==================================================
ARIMA(3, 0, 0)
MAPE: 195.52%
MAE: 195701.35
==================================================
ARIMA(3, 0, 1)
MAPE: 196.11%
MAE: 196322.34
==================================================
ARIMA(3, 0, 2)
MAPE: 193.62%
MAE: 193921.52
==================================================
ARIMA(3, 0, 3)
MAPE: 192.95%
MAE: 192646.88
==================================================
ARIMA(3, 0, 4)
MAPE: 161.49%
MAE: 162425.11
==================================================
ARIMA(3, 1, 0)
MAPE: 222.81%
MAE: 221628.07
==================================================
ARIMA(3, 1, 1)
MAPE: 220.27%
MAE: 219183.48
==================================================
ARIMA(3, 1, 2)
MAPE: 220.73%
MAE: 219625.77
==================================================
ARIMA(3, 1, 3)
MAPE: 223.18%
MAE: 221862.62
==================================================
ARIMA(3, 1, 4)
MAPE: 220.54%
MAE: 220259.21
==================================================
ARIMA(4, 0, 0)
MAPE: 194.93%
MAE: 195138.8
==================================================
ARIMA(4, 0, 1)
MAPE: 195.25%
MAE: 195471.04
==================================================
ARIMA(4, 0, 2)
MAPE: 199.09%
MAE: 199531.6
==================================================
ARIMA(4, 0, 3)
MAPE: 210.69%
MAE: 213087.3
==================================================
ARIMA(4, 0, 4)
MAPE: 176.61%
MAE: 177296.1
==================================================
ARIMA(4, 1, 0)
MAPE: 220.51%
MAE: 219400.31
==================================================
ARIMA(4, 1, 1)
MAPE: 220.04%
MAE: 218963.74
==================================================
ARIMA(4, 1, 2)
MAPE: 221.46%
MAE: 220373.48
==================================================
ARIMA(4, 1, 3)
MAPE: 221.07%
MAE: 220647.4
==================================================
ARIMA(4, 1, 4)
MAPE: 225.79%
MAE: 223271.66
==================================================

Best parameter, lowest MAPE, and lowest MAE for PAPUA¶

In [167]:
print(f"Best parameters model for PAPUA:", best_param_papua)
print(f"with the lowest MAPE: {lowest_mape_papua.round(2)}%")
print(f"with the lowest MAE: {lowest_mae_papua.round(2)}")
Best parameters model for PAPUA: (0, 0, 0)
with the lowest MAPE: 20.81%
with the lowest MAE: 19803.87

Make prediction vs actual plot for PAPUA¶

In [168]:
plot_predictions_vs_actual(prediction_series=prediction_papua, actual_series=test_papua)
No description has been provided for this image

All province prediction¶

In [169]:
all_provinces_predictions = all_provinces_predictions.round(0)

all_provinces_predictions.to_csv("all_provinces_predictions.csv")

prediction = pd.read_csv("all_provinces_predictions.csv")

prediction
Out[169]:
Unnamed: 0 ACEH SUMATERA UTARA SUMATERA BARAT RIAU JAMBI SUMATERA SELATAN BENGKULU LAMPUNG KEP. BANGKA BELITUNG ... SULAWESI UTARA SULAWESI TENGAH SULAWESI SELATAN SULAWESI TENGGARA GORONTALO SULAWESI BARAT MALUKU MALUKU UTARA PAPUA BARAT PAPUA
0 2024-01-01 1283482.0 3103771.0 1350714.0 1317270.0 574645.0 1360872.0 475724.0 1363951.0 324168.0 ... 620987.0 952641.0 3328107.0 1078504.0 285826.0 370192.0 197014.0 276173.0 67711.0 118892.0
1 2024-02-01 1187839.0 3341895.0 1350675.0 1373413.0 575500.0 1390412.0 419074.0 1294200.0 305676.0 ... 629553.0 1014809.0 3270813.0 1133313.0 281811.0 409269.0 188388.0 230579.0 70069.0 121876.0
2 2024-03-01 1156738.0 3345807.0 1350679.0 1364115.0 599613.0 1392651.0 436341.0 1254520.0 292529.0 ... 633828.0 814419.0 2984944.0 1090162.0 284698.0 335596.0 170975.0 220091.0 69501.0 120095.0
3 2024-04-01 1181740.0 3166725.0 1350717.0 1310724.0 651737.0 1334315.0 395557.0 1522195.0 282141.0 ... 650086.0 838803.0 2920306.0 1123996.0 289740.0 334255.0 163139.0 187807.0 69837.0 119977.0
4 2024-05-01 1155904.0 3192265.0 1350737.0 1298180.0 635986.0 1332158.0 388219.0 1473739.0 276638.0 ... 648918.0 767498.0 2750167.0 1096223.0 289498.0 334583.0 148149.0 178588.0 67064.0 117913.0
5 2024-06-01 1091959.0 3222922.0 1350721.0 1286268.0 615376.0 1342291.0 364871.0 1358111.0 273983.0 ... 651874.0 746346.0 2641086.0 1113581.0 288218.0 328899.0 142722.0 156221.0 63677.0 112488.0

6 rows × 35 columns

In [170]:
prediction.set_index(test_data.index, inplace=True)

prediction = prediction.drop(columns=['Unnamed: 0'])

prediction
Out[170]:
ACEH SUMATERA UTARA SUMATERA BARAT RIAU JAMBI SUMATERA SELATAN BENGKULU LAMPUNG KEP. BANGKA BELITUNG KEP. RIAU ... SULAWESI UTARA SULAWESI TENGAH SULAWESI SELATAN SULAWESI TENGGARA GORONTALO SULAWESI BARAT MALUKU MALUKU UTARA PAPUA BARAT PAPUA
time_series
2024-01-01 1283482.0 3103771.0 1350714.0 1317270.0 574645.0 1360872.0 475724.0 1363951.0 324168.0 288351.0 ... 620987.0 952641.0 3328107.0 1078504.0 285826.0 370192.0 197014.0 276173.0 67711.0 118892.0
2024-02-01 1187839.0 3341895.0 1350675.0 1373413.0 575500.0 1390412.0 419074.0 1294200.0 305676.0 295263.0 ... 629553.0 1014809.0 3270813.0 1133313.0 281811.0 409269.0 188388.0 230579.0 70069.0 121876.0
2024-03-01 1156738.0 3345807.0 1350679.0 1364115.0 599613.0 1392651.0 436341.0 1254520.0 292529.0 292329.0 ... 633828.0 814419.0 2984944.0 1090162.0 284698.0 335596.0 170975.0 220091.0 69501.0 120095.0
2024-04-01 1181740.0 3166725.0 1350717.0 1310724.0 651737.0 1334315.0 395557.0 1522195.0 282141.0 292394.0 ... 650086.0 838803.0 2920306.0 1123996.0 289740.0 334255.0 163139.0 187807.0 69837.0 119977.0
2024-05-01 1155904.0 3192265.0 1350737.0 1298180.0 635986.0 1332158.0 388219.0 1473739.0 276638.0 280978.0 ... 648918.0 767498.0 2750167.0 1096223.0 289498.0 334583.0 148149.0 178588.0 67064.0 117913.0
2024-06-01 1091959.0 3222922.0 1350721.0 1286268.0 615376.0 1342291.0 364871.0 1358111.0 273983.0 271690.0 ... 651874.0 746346.0 2641086.0 1113581.0 288218.0 328899.0 142722.0 156221.0 63677.0 112488.0

6 rows × 34 columns

Total of province with MAPE <= 20%¶

In [171]:
print(f"Number of provinces with MAPE <= 20%: {len(good_predictions)}")

for i, (province, mape) in enumerate(good_predictions.items(), start=1):
    print(f"{i}. {province}: {mape:.2f}%")
Number of provinces with MAPE <= 20%: 27
1. ACEH: 17.98%
2. SUMATERA UTARA: 8.83%
3. SUMATERA BARAT: 15.39%
4. RIAU: 12.32%
5. JAMBI: 9.94%
6. SUMATERA SELATAN: 8.02%
7. LAMPUNG: 8.43%
8. KEP. RIAU: 6.31%
9. DKI JAKARTA: 4.38%
10. JAWA BARAT: 10.68%
11. DI YOGYAKARTA: 17.35%
12. JAWA TIMUR: 9.12%
13. BANTEN: 7.39%
14. BALI: 2.37%
15. NUSA TENGGARA TIMUR: 4.56%
16. KALIMANTAN BARAT: 5.20%
17. KALIMANTAN TENGAH: 6.44%
18. KALIMANTAN SELATAN: 11.45%
19. KALIMANTAN TIMUR: 9.58%
20. KALIMANTAN UTARA: 6.67%
21. SULAWESI UTARA: 5.54%
22. SULAWESI TENGAH: 9.05%
23. SULAWESI SELATAN: 9.71%
24. SULAWESI TENGGARA: 6.82%
25. GORONTALO: 5.46%
26. SULAWESI BARAT: 9.41%
27. MALUKU: 11.66%

Percentage of provinces with MAPE <= 20%¶

In [172]:
print(f"Percentage of provinces with MAPE <= 20%: {len(good_predictions) / len(provinces) * 100:.2f}%")
Percentage of provinces with MAPE <= 20%: 79.41%

Conclusion¶

The research aimed to forecast domestic tourist visits across Indonesian provinces using the ARIMA method, addressing a critical need for more accurate tourism trend prediction. By analyzing time series data spanning from 2019 to 2024, the study highlighted the potential of advanced statistical modeling techniques in understanding and anticipating tourism dynamics across diverse regions in Indonesia. To further illustrate the findings and their implications, the following key points are presented:

  • Examples 2
  • ...
In [ ]:
!jupyter nbconvert --to html "./UAS2024_IF540L_Kelas GL_Kelompok_4.ipynb" --output-dir="./"

Next step:¶

  • convert the generated html file to PDF using the online tool: https://www.sejda.com/html-to-pdf
  • choose the following settings:
    • Page size: One long page
    • Page Orientation: auto
    • Use print stylesheet
  • Submit your ipython notebook and PDF files

Markdown basics https://markdown-guide.readthedocs.io/en/latest/basics.html#